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

问题描述 投票:13回答:4

好的,所以我基本上正在使用新的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)。

有任何想法吗?

azure iis-8 appcmd
4个回答
12
投票

经过一天的搜索,我终于明白了。它基本上在appcmd中使用一个循环,通过使用管道将命令链接在一起(有点像for循环)。这里是:

%systemroot%\system32\inetsrv\AppCmd.exe list app /xml | %windir%\system32\inetsrv\appcmd set site /in -applicationDefaults.preloadEnabled:True

0
投票

对于那些仍在IIS 7.5上的人:


0
投票

对于IIS 8.5,要设置,使用appcmd在应用程序级别(而不是站点级别)的preload,应该使用以下命令。

appcmd set app "Default Web Site/ApplicationName" /preloadenabled:true

0
投票

在Windows Server 2012 R2和IIS 8.5中到CMD管理员。

cd C:\ Windows \ System32 \ inetsrv && appcmd list app / xml | appcmd set site / in -applicationDefaults.preloadEnabled:True / commit:apphost

© www.soinside.com 2019 - 2024. All rights reserved.