通常,我使用App_Offline.htm
让网站脱机。但偶尔,当我这样做时,网站就会挂起(例如:浏览器永远等待,服务器根本不提供的响应)。这似乎发生在一个可更新的网站,当我改变一些东西,如一个控件,然后,当它不够快(网站挂起),我将App_Offline.htm放在网站的根目录。
在大多数情况下,这会立即取消我的网站。但偶尔也没有。在那些情况下,我不能只停止网站(当我重新启动时,行为继续)。停止应用程序池不允许我重新启动相同的应用程序池。到目前为止,唯一的两个解决方案是重新启动整个IIS Web服务。
我想防止这种情况发生。当App_Offline.htm
被发现时,这是IIS中的一个错误而不是“破坏所有操作”吗?我使用IIS 7和Windows 2008 SP2 64位。
答案 0 :(得分:6)
我发现我的web.config文件中有错误或丢失了。在这种情况下,app_offline.htm不会被处理。
答案 1 :(得分:2)
IIS不应该停止现有操作,只能阻止新请求通过:Will app_offline.htm stop current requests or just new requests?
听起来您正在描述更新控件,尝试加载页面以及IE卡住加载的场景。此时,您放弃app_offline.htm
并希望立即看到该页面。
如果您在app_offline.htm
到位后提出完全独立/新的请求,那么您应该会看到该页面出现。但是,现有的请求不会受到影响,如上所述。
如果可能,请尝试在更改控件之前部署app_offline.htm
文件。
答案 2 :(得分:1)
我不确定你的意思“停止应用程序池不会让我重新启动相同的应用程序池” ...如果你的意思是你不能立即重启池停止它,那是因为它还没有停止。根据该池中的工作进程数量,它可能需要一分钟才能完全降低,因此它可以接受启动命令。
另外,我认为您必须重新启动池才能使app_offline.htm有效地工作。
答案 3 :(得分:1)
这就是事情。 每次在服务器上打开.sln或更新代码时,它都会在根目录中创建app_offline票证。 这是asp.net本身的功能,可以防止任何访问干扰您的开发。
每次打开.sln后手动删除app_offline。
希望这有帮助。 感谢。答案 4 :(得分:0)
另一种可能性是缺少处理程序。需要以下处理程序:
ExtensionlessUrlHandler-Integrated-4.0