【发布时间】:2013-07-06 21:49:46
【问题描述】:
我在我的 Windows Azure Web 角色上设置了 ASP.NET 自动启动(我在 Windows Server 2012 上使用 ASP.NET 4.5 和 IIS 8)。我基本上关注了those instructions。
我通过webrole的OnStart方法在应用池上设置startMode="AlwaysRunning",在网站上设置preloadEnabled="true"。
我使用远程访问并验证了这两个属性设置是否正确(通过 IIS 管理器,以及检查 applicationHost.config 文件)。
我也在 web.config 文件中添加了这个:
<applicationInitialization skipManagedModules="true">
<add initializationPage="/" />
</applicationInitialization>
page 表示启用自动启动时应禁用空闲超时。然而,我可以从我的日志中看到它不是,应用程序池在一些不活动后重新启动。我还可以在事件日志中看到(超过 6 小时多次):
服务于应用程序池“cf9d3284-6454-4bbf-8a8e-efd73df4ed83”的进程 ID 为“772”的工作进程由于不活动而被关闭。应用程序池超时配置设置为 20 分钟。需要时会启动一个新的工作进程。
奇怪的是,即使没有对网站的请求,似乎在记录后立即启动了一个新的应用程序池。因此,如果我在一小时内没有收到单个请求,应用程序池将被回收并重新启动 3 次(我从日志中确认了这一点)。是我的配置不正确还是遗漏了什么?
【问题讨论】: