好的,所以我基本上正在使用新的IIS 8.0应用程序初始化模块实现azure预热。
我有一个启动任务(cmd文件)基本上已经取消了IIS中的空闲超时和回收时间。我正在尝试添加应用程序初始化。
我意识到我需要设置两件事; startMode
和preloadEnabled
。
我的应用程序在IIS中有大量站点(大约10个),所有站点都由Azure随机命名,并随机命名为应用程序池。
startMode
很简单,因为可以通过执行以下操作将其设置为应用程序池默认值:
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.startMode:AlwaysRunning
这适用于所有应用程序池。
然而,使用preloadEnabled
并不容易。
要设置preloadEnabled
,您可以将其用于指定的网站:
%windir%\system32\inetsrv\appcmd set config -section:sites [name='MySite'].applicationDefaults.preloadEnabled
但我需要将它应用于所有网站,我不知道它们的名称(它们是随机的),默认类型(我如何设置startMode
)
有什么想法吗?
答案 0 :(得分:12)
经过一天的搜索,我终于明白了。它基本上在appcmd中使用一个循环,通过使用管道将命令链接在一起(有点像for
循环)。这是:
%systemroot%\system32\inetsrv\AppCmd.exe list app /xml | %windir%\system32\inetsrv\appcmd set site /in -applicationDefaults.preloadEnabled:True
答案 1 :(得分:0)
对于那些仍然在IIS 7.5上的人:
答案 2 :(得分:0)
对于IIS 8.5
,要设置,使用appcmd在应用程序级别(不在站点级别)设置preload
,应使用以下命令。
appcmd set app "Default Web Site/ApplicationName" /preloadenabled:true
答案 3 :(得分:0)
在Windows Server 2012 R2和IIS 8.5中,进入CMD Adminitrator。
cd C:\ Windows \ System32 \ inetsrv && appcmd列表应用程序/ xml | appcmd设置站点/ in -applicationDefaults.preloadEnabled:True / commit:apphost