" AlwaysRunning"不工作

时间:2014-05-19 07:10:53

标签: asp.net iis

我们有IIS版本6.2用于运行ASP.net应用程序。 我们为此Web应用程序提供了一个应用程序池。 .net框架版本是" 4.0"。 " Startmodus"是" AlwaysRunning"。

为什么用户的第一次访问总是很慢?

我发现了几个与此主题相关的问题,但我看不出为什么" AlwaysRunning"在这里没有帮助。

Application Pool Settings

创建一个每隔15分钟访问一次Web应用程序的PowerShell脚本是一个好主意,以避免这种" IIS睡眠模式"?

3 个答案:

答案 0 :(得分:2)

派对有点晚了,但看起来你需要的是将空闲超时设置为零(默认为20)意味着应用程序池每20分钟重新启动一次。 Source

web.config中还有一个标记,告诉iis在启动时向你的app发送一个假请求,以确保你的应用程序完整初始化:

<applicationInitialization
   remapManagedRequestsTo="Startup.htm"
   skipManagedModules="true" >
   <add initializationPage="/default.aspx" />
</applicationInitialization>

enter image description here

答案 1 :(得分:0)

AlwaysRunning意味着它在空闲时不会关闭。

因此,您还需要配置自动启动:

  1. 在IIS管理器中,单击“连接”窗格中的计算机名称。
  2. 切换到功能查看视图是否处于活动状态。
  3. 双击“管理”部分中的“配置编辑器” 功能视图。
  4. 单击“截面”字段的向下箭头,展开 system.applicationhost,然后单击“应用程序池”。
  5. 单击(收藏),然后单击该字段旁边的日食(...) 这显示了计数。
  6. 在“集合编辑器”中,选择您所在的应用程序池 想要配置startMode属性。
  7. 在底部的“属性”窗口中,设置autoStart的值 属性为True。
  8. 完整信息here

答案 2 :(得分:0)

我必须安装IIS的“应用程序初始化”功能(我认为只有IIS 8+)。

https://www.iis.net/configreference/system.webserver/applicationinitialization

此外,我必须设置以下设置:
应用程序池:StartMode始终运行
页面:启用预加载

最后回收应用程序池以使更改生效。