【发布时间】:2011-11-27 16:35:04
【问题描述】:
我的 WebRole 中有两个站点,并定义了一个启动任务。
第一行运行良好,它为我创建了一个新的应用程序池:
%WINDIR%\system32\inetsrv\appcmd.exe add apppool /name:"VCPool" /managedRuntimeVersion:"v4.0" /managedPipelineMode:"Integrated"
现在我想将我的第二个更改为这个新创建的 AppPool,但之后添加另一行并没有帮助。
%WINDIR%\system32\inetsrv\appcmd.exe set app "WebRole_IN_0_VC/" /applicationPool:"VCPool"
似乎第二个站点还没有准备好。
如何将我的任务延迟 30 秒或稍微延迟 appcmd.exe? 除非有一种方法可以为这个启动任务创建依赖关系,它只能在第二个站点启动并运行时执行?
任何帮助将不胜感激, 非常感谢,
有没有办法将此执行延迟 30 秒,以确保第二个站点已启动并且可以更改?
更新:
感谢您的提示。我已对此事进行了进一步调查。我找到了 OnStart() 事件。
1) 但由于我使用的是 silverlight 并且只是将现有的 Web 项目包装在 Cloud Roles 项目中,所以我不会有这样的 WebRole.cs。我可以将它添加到我的 Silverlight Web 项目中并在那里使用它吗?还是建议从头开始创建一个 WebRole 项目,并使其完全取代 Silverlight Web 项目?
2) 关于服务定义中的<Runtime/>标签,我是不是就这么简单地添加?当 webrole 运行提升时,它是否会产生任何安全隐患?
<WebRole name="WebRole" enableNativeCodeExecution="true" vmsize="ExtraSmall">
<Runtime executionContext="elevated"/>
<Sites>
<Site name="WebRole" physicalDirectory="./WebRole">
...
</Sites>
</WebRole>
3) 最后但并非最不重要的一点是,我如何运行 cmd 文件或者实际上是这一行
%WINDIR%\system32\inetsrv\appcmd.exe set site /site.name:"WebRole_IN_0_VC" /[Path='/'].applicationPool:"ASP.NET v4.0" >>Log.txt
在 OnStart() 方法中?
【问题讨论】:
标签: iis azure azure-web-roles appcmd azure-configuration