我有一个ASP.NET网站,我将不得不采取一些重大的结构更新,我想知道我应该从客户端的角度来看待它。我听说过App_Offline.htm
文件或类似的东西,但我从来没有真正得到过成功的工作。有谁知道怎么做?
修改
我的应用程序正在运行ASP.NET 4.0,这是值得的。
答案 0 :(得分:14)
我没有弄乱app_offline愚蠢(除了其他原因,你在执行维护时无法继续在内部看到网站),我在IIS中创建了一个额外的“维护停机”站点,通常会停止。它具有与主站点相同的IP,主机头等,但只有default.aspx
,图像文件夹和样式表。该文件包含“此站点将在xx:xx PM CST之前停止维护”消息。
当我准备好执行更新时,我会停止主站点并启动维护站点,然后维护站点处理它收到的任何请求,当然还会返回维护消息。
维护完成后,请停止维护占位符站点,然后重新启动主站点。
如果您正在使用主机标头,则可以修改此方法,以便在维护站点处理外部请求时,站点仍可通过LAN / WAN在内部访问。一种简单的方法是在启动维护站点之前从主站点删除<*>.yourdomain.com
的主机头,并确保主站点具有可在内部访问的其他主机头(例如,添加到本地主机文件中) )。当您启动维护站点时,它将处理外部请求,而主站点将处理对仅内部标头的请求。
或者(这看起来很复杂,但是省去了添加和删除标题的麻烦),创建了三个站点:
这样,您只需停止主站点并启动其他两个站点,以便将外部流量汇集到“维护人员”网站,同时您仍然可以查看和调整主站点。这对于在部署期间往往会出现的最后几分钟的测试/错误修复很有帮助。
<强>更新强>
如果您无权访问服务器或IIS管理器,则很可能无法使用任何此类服务器。假设您的访问权限仅限于您自己的文件夹,您的选项似乎是将app_offline.htm
部署到站点的根目录(ASP.NET检查该文件名),或者只是将整个站点替换为“维护“app。也许其他人会选择替代品。
答案 1 :(得分:4)
IE的技巧是推翻线路特定的字节数,否则IE显示不那么友好的404错误。这里有更多细节:http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx
答案 2 :(得分:0)
如果您有一个良好的预发布测试流程和谨慎的发布程序,您可能不会长时间停机。
在这种情况下,将名为App_Offline.htm的文件放入您的站点根工作正常。 IIS将替换您的网站,直到您删除它。这是一种无痛的方式,可确保您在转换时不会更新任何内容。
我的网站上只有一个带有网站标识的标题,以及一条消息,我们将在最近二十分钟内进行维护。而已。我花了大约五分钟来写IIRC。
我肯定会推荐这个短时间不到半个小时。任何更长的时间,你可能正在考虑一个重大的系统变化,保证像David Lively那样的方法。