我有一个运行的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中找到的根网站。
答案 0 :(得分:1)
结合David重置空闲超时的答案,您还可以使用以下内容作为启动任务来阻止应用程序池的回收:
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.recycling.periodicRestart.time:00:00:00
您还需要设置另外两项内容:startMode
和preloadEnabled
。
对于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