Azure Appcmd启动任务,为所有站点设置preloadEnabled

时间:2013-04-18 14:40:07

标签: azure iis-8 appcmd

好的,所以我基本上正在使用新的IIS 8.0应用程序初始化模块实现azure预热。

我有一个启动任务(cmd文件)基本上已经取消了IIS中的空闲超时和回收时间。我正在尝试添加应用程序初始化。

我意识到我需要设置两件事; startModepreloadEnabled

我的应用程序在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

有什么想法吗?

4 个答案:

答案 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