在相当多的情况下,放置 app_offline.htm
在根目录中恰到好处:您进行了一些更新,更新时出现消息,仅此而已。这个想法是,正如微软所说,在调用任何东西之前,IIS 首先检查 app_offline.htm 是否存在,如果存在,它会取消所有内容并显示它。
所以这么好,但在许多情况下它不起作用:
可能存在更多失败的场景。我的观点是:对于任何严肃的更新工作,app_offline.htm 不适合。我有时会在 IIS 中创建一个重定向到另一个站点,但另一个站点可能并不总是可用,这可能会使用户感到困惑。
理想情况下,我希望将当前位置保留在最终用户的 url 位置栏中,显示消息,并每分钟自动刷新页面以查看该站点是否已恢复,以便用户继续他的位置网站返回时的左侧。虽然静态页面在技术上很容易,但由于上述原因,在抛出错误的那一刻就会失败。
最佳答案
没有其他人提到 web.config 和重新编译,所以在这里。我遇到过这个问题。我不同意那个说它“不适合生产使用”的人:VS 2010 在部署时使用 app_offline,因此它被嵌入到代码中。
解决方法(归功于 Kurt Schindler,blog post here)。
网络配置:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<httpRuntime waitChangeNotification="300"
maxWaitChangeNotification="300"/>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
</configuration>
这样做的结果是 您不能直接使用 VS 2010 应用程序部署 如果您关心最终用户在部署期间看不到 YSOD。因此,您需要使用 Nant 或其他一些部署工具来执行此操作。
关于asp.net - 什么是经常损坏的 app_offline.htm hack 的建议替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5301847/