我不确定从哪里开始,甚至我的想法是否正确。希望这里有人可以告诉我该怎么做,或者至少给我一个开始旅行的方向。
我在包含多个 MVC3 和 Coldfusion 应用程序的 Intranet 网站上工作。我已将 AppPool 设置为每天凌晨 2:00 进行回收。现在,我想创建一个计划任务来重新加载该 IIS 网站下包含的每个应用程序,这样当第一个用户早上进来时,他们不必等待 30 秒到 2 分钟才能将他们的应用程序重新加载到IIS 应用程序池。
有没有容易做到这一点?在我看来,我唯一的选择是:
- 编写bash脚本,手动插入各个网站加载
- 编写一个程序,试图找到每个应用程序并加载它们
现在,如果这些是我唯一的选择,是否可能有一个 .NET 库可以让我轻松找到 IIS 下的 MVC3 应用程序?
使用应用程序初始化模块来完成它: http ://www.iis.net/download/ApplicationInitialization
这个模块有一个旧版本,但这是新近重写的版本。它仍在 CTP 中,但看起来相当稳定。
此模块似乎默认包含在 Server 2012 和 IIS8 中
我们通常会创建一个计划任务,每隔几分钟运行一次 wget 来执行初始加载。这可以从任何计算机运行。IIS 7 有一个“预热”功能,但我真的看不出它比使用 wget 更简单。
另请注意,如果您的站点未进行预编译,用户仍将对每个未编译的页面产生延迟。最好的办法是在构建过程中使用 aspnet_compiler.exe 为您完成这项工作。