15

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

我有一个启动任务(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

4 回答 4

12

找了一天,终于找到了。它基本上在 appcmd 中使用循环,通过使用管道将命令链接在一起(有点像for循环)。这里是:

%systemroot%\system32\inetsrv\AppCmd.exe list app /xml | %windir%\system32\inetsrv\appcmd set site /in -applicationDefaults.preloadEnabled:True
于 2013-04-19T13:12:17.090 回答
1

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

appcmd set app "Default Web Site/ApplicationName" /preloadenabled:true
于 2016-02-17T20:28:53.407 回答
0

对于仍在使用 IIS 7.5 的用户:

于 2013-10-21T07:42:06.357 回答
0

在 windows Server 2012 R2 和 IIS 8.5 中进入 CMD Adminitrator。

cd C:\Windows\System32\inetsrv && appcmd list app /xml | appcmd 设置站点 /in -applicationDefaults.preloadEnabled:True /commit:apphost

于 2019-02-18T08:55:58.263 回答