1. 概述
Windows Azure 是微软的云计算平台。用于 在微软数据中心 通过全局网络 生成、发布和管理应用程序。
本章内容包括 startup tasks 以及 实现 Start, Run 和 Stop 事件。
2. 主要内容
2.1 Windows Azure
① 提供 PaaS 和 IaaS 两种服务。
PaaS 提供一个实际的计算平台,包括 操作系统、程序执行环境、数据库 和 web服务器。
IaaS 是提供虚拟的机器。
② Windows Azure 有三种类型的解决方案:虚拟机器、web站点 和 云服务。
虚拟机器:使用方式类似本地的机器,可以进行开发测试和部署。
web站点:单纯的web站点寄宿。可以方便的部署和运行ASP.NET MVC4站点。
云服务:直接的PaaS模式,是Windows Azure的初始发布模型。
2.2 Startup tasks
2.2.1 Windows Azure中有三种角色:Web、Worker 和 VM。
Web一般用于执行IIS。Worker一般用于执行中间层的程序。而VM角色可以完全的访问虚拟机。
2.2.2 通过 Startup tasks,可以 注册COM组件、安装组件或者设置注册key。Startup tasks仅对Web和Worker角色可用。
Startup tasks 在 Task元素中定义,Task元素是 ServiceDefinition.csdef文件中的Startup元素的一个节点。
一个标准的Startup tasks是一个命令行程序或者一个批处理文件。
2.2.3 当一个角色启动,Windows Azure中,后续的过程如下:
① 实例被标记为Starting,不再接收通知。
② Startup tasks 根据taskType属性开始执行。。(简单任务以同步方式,后台和前台任务以异步方式。)
③ 角色寄宿过程启动,站点在iis中被创建。
④ 调用 Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint.OnStart 方法。
⑤ 实例被标记为Reader并开始接收通知。
⑥ 调用 Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint.Run 方法。
2.2.4 AppCmd.exe命令行工具用于在Windows Azure中,启动时管理IIS设置。
2.2.5 Startup tasks 可以被执行多次。忘记配置AppCmd.exe工具会导致运行时错误。
2.2.6 可以把一个任务标记为后台执行。
<Startup> <Task commandLine="Startup\ExecWithRetries.exe "/c:Startup\AzureEnableWarmup.cmd" /d:5000 /r:20 /rd:5000 >> c:\enablewarmup.cmd.log 2>>&1" executionContext="elevated" taskType="background" /> </Startup>
2.2.7 Windows Azure 虚拟机是无状态的。
2.3 实现 Start, Run 和 Stop 事件
OnStart 方法和 Startup tasks有许多概念上的相似点:
① 有相同的超时机制。
② 角色被回收时都会被再次执行。
③ 都可以配置先于角色处理。
OnStart 方法和 Startup tasks 的不同之处包括:
① 未完待续。。。