最近,我正在寻找一种在升级 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,即使在升级期间也是如此,但它确实发生了。