我该如何确保应用程序/应用程序池重新启动时应用程序尽快恢复在线状态?

更好的是,有没有办法在发生常见触发器时防止应用程序重新启动?比如修改 web.config、global.asax 或 machine.config?

有帮助吗?

解决方案

ASP.NET 4.0 中将有一个“自动启动”功能(斯科特·格思里谈论它),但现在这对你没有帮助。

请确保您的网站/应用程序正在运行的应用程序池不会自动进入“睡眠”状态。默认应用程序池设置为在 20 分钟不活动后关闭。我记得这不会使网站重建,但会使第一个请求明显变慢。

小纸条,一个 网站项目 也可以构建,因此您的 App_Code 将为空,并且您的 bin 文件夹将包含一堆 .dll(只需使用“构建”>“构建网站”)。这肯定会使对您网站的第一个请求更快。我不认为 网站申请 会比预编译更快 网站项目, ,但它更容易管理。

其他提示

是,移动到网络应用程序将加快重新启动过程。这样做的另一件事是使你的Global.asax一样干净完全可能的。

即使网络应用程序,网站会做一个重启是否有这些配置文件被修改,或者如果你的bin目录变化的组件。你不能阻止这一切。

重新启动时间应当相当快大约2到3秒。不过,我已经看到它设置一个带长达20秒的一些域级数据的一些相当复杂的的Global.asax文件。当然,他们愿意付出代价,因为它降低了它们的一些正常页面加载时间从3秒至0.1秒。

我们主要使用网站的项目,所以我假设的切换到Web应用程序项目将加快这,因为所有的代码文件的预编译成一个.dll。

在使用网站项目的,我倒觉得移动App_Code文件的文件到外部类库也将加快速度吧,因为代码将被预编译。

有关Web应用程序项目,您可以使用Web部署项目( VS2010下载链接)预编译的网站变成类似于一个网站项目做一个DLL。查看如何使用WDPS ,从而 ScottGu的文章。

我有在我运行一个非常高流量的网站,取得了良好的300+请求/秒类似的问题。重新启动需要花费好至少90秒它。

当我作出这样的重新启动服务器,似乎重新启动停止,直到所有的旧请求(其中一些运行时间非常长)的变化密切。我可以重新开始发生更快的手动查杀老w3wp.exe的实例。

时有一些方法来强制IIS关闭所有连接马上做硬重启?在IIS或asp.net某些设置来控制此?

scroll top