如何才能确保在触发应用程序/应用程序池重新启动时,应用程序尽快恢复在线状态?
更好的是,有没有一种方法可以防止应用程序在通常的触发器发生时重新启动?比如修改web.config、global.asax或machine.config?
发布于 2010-02-18 03:20:10
在ASP.NET 4.0 (Scott Guthrie talks about it)中将会有一个“自动启动”功能,但现在这对你没有帮助。
请确保您的网站/应用程序正在运行的应用程序池不会自动进入“睡眠”状态。默认AppPool设置为非活动20分钟后关闭。在我的记忆中,这并不会使网站重建,但会使第一个请求明显变慢。
注意,还可以构建网站项目,因此App_Code将为空,而bin文件夹将包含一堆.dll(只需使用build > Build Website)。这肯定会让你网站的第一个请求更快。我认为网站应用程序不会比预编译的网站项目更快,但它更容易管理。
发布于 2010-01-28 11:20:41
是的,移动到web应用程序将加快重启过程。另一件要做的事情是让你的global.asax尽可能的干净。
即使是web应用程序,如果这些配置文件中的任何一个被修改,或者bin目录中的程序集发生更改,该站点也会重新启动。你不能阻止这一切。
重启时间应该相当快,大约2到3秒。然而,我见过一些非常复杂的global.asax文件,它们设置一些域级数据需要20秒。当然,他们愿意为此付出代价,因为这将他们的一些正常页面加载时间从3秒减少到了.1秒。
发布于 2010-01-28 11:13:13
我们主要使用网站项目,所以我假设切换到web应用程序项目会加快速度,因为所有的代码文件都被预编译成一个.dll。
当使用网站项目时,我认为将App_Code文件移动到外部类库中也会加快速度,因为代码是预编译的。
https://stackoverflow.com/questions/2152044
复制相似问题