我有一个ASP.NET站点,我将不得不删除该站点以进行一些主要的结构更新,并且我想知道如何从客户端的角度进行操作。我听说过App_Offline.htm文件或类似文件,但我从未真正获得成功。有谁知道如何做到这一点?

编辑

我的应用程序正在运行ASP.NET 4.0,这是值得的。

最佳答案

我没有弄乱app_offline的愚蠢性(除其他原因外,在执行维护时无法继续在内部看到该站点),而是在IIS中创建了一个额外的“down down for maintenance”站点,该站点通常已停止。它具有与主站点相同的IP,主机 header 等,但只有default.aspx,images文件夹和样式表。该文件包含“此站点将在XX:xx PM CST之前关闭进行维护”消息。

当我准备执行更新时,我将停止主站点并启动维护站点,然后维护站点将处理它收到的所有请求,当然还会返回维护消息。

维护完成后,停止维护占位符站点,然后重新启动主站点。

如果使用主机头,则可以修改此方法,以便在维护站点处理外部请求时,仍可以通过LAN/WAN内部访问该站点。一种简单的方法是在启动维护站点之前,从主站点中删除<*>.yourdomain.com的主机头,并确保主站点具有内部可访问的其他主机头(例如,添加到本地主机文件中)。当您启动维护站点时,它将处理外部请求,而主站点将处理对仅内部 header 的请求。

或者,(这看起来很复杂,但是省去了添加和删除标题的麻烦),创建三个站点:

  • 主站点:配置为正常运行。
  • 维护站点:具有与主站点相同的IP,主机 header 等,但仅包含默认的“down down for maintenance”页面以及所需的任何图像,css等。
  • 内部测试站点:复制主站点的配置并指向相同的文件夹,但只有主机 header 等用于内部名称(不在公共(public)DNS中)。

  • 这样,您只需停止主站点并启动其他两个站点,即可将外部流量集中到“停机维护”站点,而您仍然可以查看和调整主站点。这有助于在部署过程中进行最后几分钟的测试/错误修复。

    更新

    如果您无权访问服务器或IIS管理器,则很可能将无法使用其中任何一个。假设您的访问仅限于您自己的文件夹,那么您的选择似乎是将app_offline.htm部署到站点的根目录(ASP.NET检查该文件名),或者只是将整个站点替换为“停机维护”应用程序。也许其他人会选择其他替代品。

    关于asp.net - 如何关闭.NET网站进行维护?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4867768/

    10-15 13:57