gpt4 book ai didi

asp.net - 什么是经常损坏的 app_offline.htm hack 的建议替代方案?

转载 作者:行者123 更新时间:2023-12-03 22:00:21 24 4
gpt4 key购买 nike

在相当多的情况下,放置 app_offline.htm在根目录中恰到好处:您进行了一些更新,更新时出现消息,仅此而已。这个想法是,正如微软所说,在调用任何东西之前,IIS 首先检查 app_offline.htm 是否存在,如果存在,它会取消所有内容并显示它。

所以这么好,但在许多情况下它不起作用:

  • 当您在 ASPX 页面中出现编译错误并且用户直接链接到它时
  • 当您有冲突的程序集时
  • 当您的 web.config 中出现解析错误时
  • 在删除/上传整个网站的过程中。
  • 指向静态 HTML 页面的直接链接仍然显示为
  • 在显示消息之前抛出文件未找到、访问被拒绝

  • 可能存在更多失败的场景。我的观点是:对于任何严肃的更新工作,app_offline.htm 不适合。我有时会在 IIS 中创建一个重定向到另一个站点,但另一个站点可能并不总是可用,这可能会使用户感到困惑。

    理想情况下,我希望将当前位置保留在最终用户的 url 位置栏中,显示消息,并每分钟自动刷新页面以查看该站点是否已恢复,以便用户继续他的位置网站返回时的左侧。虽然静态页面在技术上很容易,但由于上述原因,在抛出错误的那一刻就会失败。

    最佳答案

    没有其他人提到 web.config 和重新编译,所以在这里。我遇到过这个问题。我不同意那个说它“不适合生产使用”的人:VS 2010 在部署时使用 app_offline,因此它被嵌入到代码中。

    解决方法(归功于 Kurt Schindler,blog post here)。

  • 将 app_offline.htm 复制到您的网站
  • 制作一个看起来像这样的 web.config(参见下面的编号块)
  • 将该 web.config 复制到您的远程目录
  • 将除真正的 web.config 之外的所有站点文件复制到远程目录
  • 将真实的 web.config 复制到远程目录(应该开始重新编译)

  • 网络配置:
    <?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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com