在WindowsAzure1.3 中,我们可以通过Start-Up任务执行一些命令来配置Role的运行环境。比如注册COM组件,配置IIS设置等等。此文我们演示一下如何使用 Start-Up来配置WebRole运行环境,从而让其运行传统的asp页面。

  • 1. 我们新建一个Cloud项目,添加一个WebRole。
  • 2. 然后,在WebRole中创建一个测试用的asp页面:

< html >

< head >

    < title > Hello, World!</ title >

</ head >

< body >

    <% Response.write("Hello from Classic ASP!") %>

</ body >

</ html >

 

3. 现在我们创建一个cmd文件,写入安装IIS asp模块的命令。

start /w pkgmgr /iu:IIS-ASP

这里需要注意,cmd文件要使用ANSI编码保存。

 Windows Azure 1.3 新特性-Start-Up 任务

 

 

  • 4. 在WebRole项目中,添加此cmd文件,注意修改文件属性 Copy to Output Directory为 Copy Always.

 

 Windows Azure 1.3 新特性-Start-Up 任务

  • 5. 最后,我们要手动修改csdef文件,为我们的WebRole添加一个start-Up任务

< Startup >

      < Task taskType = "simple " executionContext = "elevated " commandLine = "setup.cmd " />

</ Startup >

 

 

其中,commandLine指向我们写好的cmd文件, executionContext属性表明使用何种权限来执行command,我们这里需要Admin权限执行,因此选elevated。

TaskType的可选值有三种,含义如下:

  • Simple:启动流程会阻塞在Startup任务步骤,直到所有任务都完成了
  • Background: startup任务在后台运行,不会阻塞启动过程
  • Foreground: 和Background方式类似,不过Role在所有Start-Up任务未结束前不会被关掉
  • 6. 把项目部署到云上,我们的WebRole就可正常运行传统ASP页面了

 

 Windows Azure 1.3 新特性-Start-Up 任务

 

参考资料:

http://channel9.msdn.com/Shows/Cloud+Cover/Cloud-Cover-Episode-31-Startup-Tasks-Elevated-Privileges-and-Classic-ASP