Asp.net app_offline.htm是否有不易受运行时错误影响的替代方案?

Asp.net app_offline.htm是否有不易受运行时错误影响的替代方案?,asp.net,iis,web-config,app-offline.htm,Asp.net,Iis,Web Config,App Offline.htm,最近,我正在寻找一种方法,在升级ASP.Net MVC web应用程序的过程中,向我的web应用程序的最终用户显示一条友好的消息和正确的http状态503 将app_offline.htm文件放在应用程序根文件夹中看起来是一个理想的解决方案。然而,这有一个主要缺点。我天真地认为,无论web应用程序的状态如何,都会为每个请求提供此页面。然而,事实证明,该机制内置于ASP.Net中,并且取决于web应用程序的有效配置。因此,例如,如果正在修改应用程序的web.config文件并包含一些错误,应用程序

最近,我正在寻找一种方法,在升级ASP.Net MVC web应用程序的过程中,向我的web应用程序的最终用户显示一条友好的消息和正确的http状态503

将app_offline.htm文件放在应用程序根文件夹中看起来是一个理想的解决方案。然而,这有一个主要缺点。我天真地认为,无论web应用程序的状态如何,都会为每个请求提供此页面。然而,事实证明,该机制内置于ASP.Net中,并且取决于web应用程序的有效配置。因此,例如,如果正在修改应用程序的web.config文件并包含一些错误,应用程序仍将返回错误页面,而不仅仅是app_offline.htm文件内容

Http重定向和URL重写模块也依赖于有效的web.config,因此无法解决此问题


当然,我们应该避免在任何时候都使用无效的web.config,即使在升级过程中也是如此。但这种情况已经发生。

在典型情况下,您的web服务器位于负载平衡群集中,要升级的服务器应该从群集中删除、升级并放回。那么你的客户就永远没有机会看到503或类似的错误。当服务器处于活动状态且客户端可以访问时,切勿执行升级(Microsoft确实有一些技巧,如
app\u offline.htm
,但这不是推荐的方法)。