【问题标题】:What are possible causes for App_Offline.htm not bringing the site down?App_Offline.htm 不关闭网站的可能原因是什么?
【发布时间】:2010-08-23 07:05:45
【问题描述】:

通常,我使用App_Offline.htm 使网站脱机。但有时,当我这样做时,网站就会挂起(例如:浏览器永远等待,服务器没有响应根本)。当我更改某些内容(例如控件)时,这似乎发生在可更新站点上,然后,当它运行得不够快(站点挂起)时,我将 App_Offline.htm 放在网站的根目录中。

在大多数情况下,这会立即关闭我的网站。但有时它不会。在这些情况下,我不能只是停止网站(当我重新启动时,行为会继续)。停止应用程序池不会让我重新启动同一个应用程序池。到目前为止,唯一的两个解决方案是重新启动整个 IIS Web 服务。

我想防止这种情况发生。当找到App_Offline.htm 时,这是 IIS 中的错误而不是“破坏所有操作”吗?我使用 IIS 7 和 Windows 2008 SP2 64 位。

【问题讨论】:

  • 你有打开的线程和数据库访问权限吗?
  • @Aristos:我不会手动打开线程,但当然,任何 Web 应用程序都有多个线程。是的,我有数据库访问权限。在这个特定的站点中,连接集中在一个(线程安全的)单例中,并且通过 NHibernate 检索数据。但我的印象是 App_Offline.htm 应该强制取消 所有 线程,不是吗?
  • 就在一分钟前,遇到了完全相同的情况:我更换了一个 DLL,站点需要永远响应,app_offline.htm 不起作用并且关闭站点需要一些时间(但有帮助)。
  • @Abel 是的,线程是强制停止的 - 我现在只是进行测试,它们强制停止。
  • @Abel 要检查的一点是 global.asax 上的 Application_End

标签: asp.net iis windows-server-2008-r2 app-offline.htm


【解决方案1】:

我发现我的 web.config 文件要么有错误,要么丢失。在这种情况下,app_offline.htm 不会得到处理。

【讨论】:

    【解决方案2】:

    IIS 不应停止现有操作,仅阻止新请求通过:Will app_offline.htm stop current requests or just new requests?

    听起来你正在描述一个场景,你更新一个控件,尝试加载一个页面,并且 IE 卡在加载中。此时您删除app_offline.htm 并期望立即看到该页面。

    如果您在放置app_offline.htm 之后提出了一个完全独立/新的请求,那么您应该会看到该页面出现。但是,现有请求不会受到上述链接的影响。

    如果可能,请在进行控制更改之前尝试部署 app_offline.htm 文件。

    【讨论】:

    • 事实证明(很多很多后来的情况),这与真正的原因最接近。现有操作,尤其是在繁忙的站点上,可能需要 很长 时间才能停止,如果这些操作中的任何一个恰好处于 GC 周期中并且内存不足(导致GC 会占用更多时间)。
    【解决方案3】:

    我不确定您所说的 “停止应用程序池不会让我重新启动同一个应用程序池”是什么意思...如果您的意思是在之后无法立即重新启动池停止它,那是因为它还没有停止。根据该池中工作进程的数量,它可能需要一分钟才能完全减速,以便它可以接受启动命令。

    另外,我认为您必须重新启动池才能让 app_offline.htm 有效工作。

    【讨论】:

    • +1 用于重新启动池,它有帮助,但仅在某些时候有用(重新启动 IIS 更为戏剧性,但在事情变得无响应时更频繁地工作)。
    【解决方案4】:

    事情就是这样。 每次在服务器打开 .sln 或更新代码时,它都会在根目录中创建 app_offline 票证。 这是 asp.net 本身的功能,可防止任何访问干扰您的开发。

    每次打开 .sln 后手动删除 app_offline。

    希望对您有所帮助。 谢谢。

    【讨论】:

    • 您不应该在生产服务器上拥有 SLN 文件。我认为您指的是使用 Visual Studio 发布站点,它确实使用了 app_offline.htm。这个问题是关于即使有app_offline.htm,站点如何也不会脱机(即,没有重定向到app_offline.htm)。
    【解决方案5】:

    另一种可能性是缺少处理程序。需要以下处理程序:

    ExtensionlessUrlHandler-Integrated-4.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 2013-02-16
      • 2021-09-01
      相关资源
      最近更新 更多