Azure启动任务Appcmd来配置我的站点

时间:2012-06-06 21:43:00

标签: iis azure startup appcmd

我有一个运行的azure站点,我想解决臭名昭着的应用程序池重启热身问题。似乎MS已经发布了Application Initialization IIS。

所以我必须做以下事情 1.安装应用程序初始化 2.进行此处http://learn.iis.net/page.aspx/1089/iis-80-application-initialization/

中提到的一些配置更改

a)%WINDIR%\ system32 \ inetsrv \ config \ applicationhost.config文件的应用程序池部分

b)%WINDIR%\ system32 \ inetsrv \ config \ applicationhost.config文件的站点部分       ...          ....

我的问题是,如何编写Appcmd脚本来解决2. b)将 preloadEnabled =" true" 添加到正确的位置,因为我需要做1)找到根网站,因为我不知道网站名称,也不知道网站ID。 2)将 preloadEnabled =" true" 属性添加到我在步骤2中找到的根网站。

5 个答案:

答案 0 :(得分:1)

结合David重置空闲超时的答案,您还可以使用以下内容作为启动任务来阻止应用程序池的回收:

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.recycling.periodicRestart.time:00:00:00

您还需要设置另外两项内容:startModepreloadEnabled

对于startMode,您可以将其添加到您为上述代码创建的启动任务中:

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.startMode:AlwaysRunning

对于preloadEnabled,您可以执行Alex所说的并在启动任务中执行此操作:

appcmd set app "websitename/vdirname" /preloadEnabled:true

答案 1 :(得分:0)

就避免重启而言,将此命令添加到启动脚本中:

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeout:00:00:00

不确定您的预装问题。

答案 2 :(得分:0)

http://blogs.msdn.com/b/tom/archive/2011/02/18/installing-and-using-an-httpmodule-in-windows-azure.aspx上有一个示例。实质上,您需要将executionContext设置为提升,因此您的Web角色的入口点(但不是ASP.NET应用程序)将在管理员优先级下运行。在入口点内,您可以使用IIS管理API来配置预热模块。

答案 3 :(得分:0)

如果您希望使用AppCmd启动任务配置站点/应用程序池,请查看我最近的帖子:

http://mvolo.com/configure-iis-websites-windows-azure-startup-tasks-appcmd/

这包括如何查找要编辑的站点/应用程序池,以及如何在创建站点/ apppool配置之后而不是之前运行任务。

我们实际上是通过serviceAutoStartProviders使用这种方法启用应用程序预热,我将在博客中介绍我们使用的配置工具/我们在稍后的帖子中解决的问题。

如果您现在需要帮助,请给我发电子邮件。

答案 4 :(得分:0)

我知道这是一个老问题,但希望能回答这一部分:

  

如何编写Appcmd脚本来解决2. b)将preloadEnabled =“true”添加到正确的位置,因为我需要做

使用appcmd

appcmd set app "websitename/vdirname" /preloadEnabled:true

关心Alex