iis - Azure:如何执行延迟的启动任务?

标签 iis azure azure-web-roles appcmd azure-configuration

我的 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() 方法中?

最佳答案

您可以探索使用 PowerShell 脚本来执行这些任务吗? PowerShell 有一种方法可以让线程休眠。类似的东西

批处理文件

%WINDIR%\system32\inetsrv\appcmd.exe add apppool /name:"VCPool" /managedRuntimeVersion:"v4.0" /managedPipelineMode:"Integrated"
powershell -command "Set-ExecutionPolicy Unrestricted" 2>> err.out 
powershell .\sleep.ps1 2>> err.out
%WINDIR%\system32\inetsrv\appcmd.exe set app "WebRole_IN_0_VC/" /applicationPool:"VCPool"

我没有尝试过,但应该可以。看这个post了解 Powershell 集成。

关于iis - Azure:如何执行延迟的启动任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8287088/

相关文章:

iis - 自定义 404 错误页面在 IIS 8.5 上不起作用

python - 如何将输入变量从数据工厂传递到我的持久函数

azure - 是否可以使用 DotTrace 远程分析 Azure 网站?

azure - 将多个Web角色实例发布到不同大小的VM

azure - 更新 Azure Web 角色上的 aspnet.config

asp.net - 系统.IO.FileLoadException : Loading this assembly would produce a different grant set from other instances

c# - 转换 Web API 以使用自托管

azure - AKS 无法提取镜像 - 大小验证失败

reactjs - 在 IIS 10 上使用 React.js 运行 .net core Web 应用程序时出错

azure - 用于 EAI 的 Biztalk 与用于 EAI 场景的 ESB