11

我在我的 Windows Azure Web 角色上设置了 ASP.NET 自动启动(我在 Windows Server 2012 上使用 ASP.NET 4.5 和 IIS 8)。我基本上遵循了这些指示

我正在通过 webrole 的 OnStart 方法startMode="AlwaysRunning"在应用程序池和网站上进行设置。preloadEnabled="true"

我使用远程访问并验证了这两个属性设置是否正确(通过 IIS 管理器,以及检查 applicationHost.config 文件)。

我还将它添加到 web.config 文件中:

<applicationInitialization skipManagedModules="true">
  <add initializationPage="/" />
</applicationInitialization>

页面说启用自动启动时应禁用空闲超时。然而,我可以从我的日志中看到它不是,应用程序池在一些不活动后重新启动。我还可以在事件日志中看到(超过 6 小时多次):

由于不活动,服务应用程序池“cf9d3284-6454-4bbf-8a8e-efd73df4ed83”的进程 ID 为“772”的工作进程已关闭。应用程序池超时配置设置为 20 分钟。需要时将启动一个新的工作进程。

奇怪的是,即使没有对网站的请求,似乎在记录后立即启动了一个新的应用程序池。因此,如果我在一小时内没有收到单个请求,应用程序池将被回收并重新启动 3 次(我从日志中确认了这一点)。我的配置不正确还是我遗漏了什么?

4

2 回答 2

11

将启动模式设置为始终单独运行对我也不起作用,但在应用程序池的高级设置中将空闲超时设置为 0 可以。

应用程序池高级设置

于 2015-01-27T13:28:13.243 回答
1

http://developers.de/blogs/damir_dobric/archive/2009/10/11/iis-7-5-and-always-running-web-applications.aspx

我在这个问题上挣扎了很多。我尽了一切努力让我的服务在 IIS 中保持活力,但最终厌倦了,不得不采取不同的方法。我创建了一个 Windows 服务只是为了让这些应用程序池保持活力。您可以尝试的一种方法是转到 IIS 配置文件并验证您是否可以看到您所做的配置反映在该配置文件中。请参阅顶部的链接。但是,无论您何时将其设置为睡眠状态,您的配置都会在应用程序池重新启动时重置。您可能需要想出一些方法。

于 2013-07-09T10:52:57.953 回答