【问题标题】:ASP.NET application pool shutdown problemASP.NET 应用程序池关闭问题
【发布时间】:2011-06-12 03:27:10
【问题描述】:

有时异常会导致application pool 关闭。我手动启动它,但问题是如何在IIS 7.0(Windows server 2008)中自动执行此行为。

【问题讨论】:

    标签: exception iis-7 restart application-pool


    【解决方案1】:

    如果一个应用程序池死了,该池服务的资源的下一个请求将自动重新启动它。但是,如果您在应用程序池上启用了快速故障保护,并且在 故障间隔 指定的时间间隔内,该应用程序池的死机次数超过了 maximum failures 属性指定的次数em> 属性,那么您将收到 503 Service Unavailable 消息。此时,您将不得不手动重新启动应用程序池。

    要解决此问题,请禁用应用程序池的快速故障保护,或尝试增加时间段内的故障数量,然后确定导致应用程序池终止的异常的根本原因。

    【讨论】:

    • 它不会在下一次请求时重新启动。能给个链接吗?
    • @xaqron - 当然,这是 IIS 应用程序池默认值的 link。特别感兴趣的是startMode 属性。默认值为onDemand,它在收到第一个 HTTP 请求时启动应用程序池。您是否尝试过禁用快速故障保护?尝试一下,然后确保您的应用程序池已启动。它还会死吗?您的应用程序和系统事件日志中有哪些与 IIS 相关的错误?
    • @xaqron - startMode 属性已添加到 IIS 7.5 配置中,但是如果您运行的是 IIS 7,则应用程序池的默认行为模拟 startMode = onDemand,应说明我之前链接的文档。
    【解决方案2】:

    open iis 选择您的网站并在右侧看到操作

    在浏览网站 -> 高级设置下

    选择自动启动为真。

    【讨论】:

    • 这已经是真的,它是关于在 IIS 启动时启动网站。我需要一些东西来监控 application pools 并在失败时启动它们。
    【解决方案3】:

    我在 Windows Server 2012 Standard 和 IIS 8 中遇到了类似的问题。最后带有 & 字符的 URL 会导致 IIS 崩溃,并认为它们是恶意的。这会导致应用程序池失败,从而使网站崩溃。

    您需要做的是查看事件查看器中的 1309 个事件。 (在事件 ID 列中)您可以使用任务计划程序进行设置。当您看到该事件时,您重新启动应用程序池。

    要重新启动应用程序池,您可以使用 .vbs 脚本,如下所示:

    设置 oWebAdmin = GetObject("winmgmts:root\WebAdministration") 设置 oAppPool = oWebAdmin.Get("ApplicationPool.Name='DefaultAppPool'") ' 回收应用程序池。 oAppPool.Recycle

    如果您更喜欢 Powershell,也可以使用它。

    我使用在这里找到的一个非常简洁的 C# 程序: http://www.west-wind.com/weblog/posts/2012/Oct/02/A-tiny-Utility-to-recycle-an-IIS-Application-Pool

    它做得很好,并且似乎解决了前两种方法存在的一些权限问题。不过,我确实必须以管理员身份运行此脚本。

    希望这会有所帮助。它不能解决问题,但在解决此 URL 问题之前,它会消除热量。

    【讨论】:

      猜你喜欢
      • 2011-08-22
      • 2011-08-24
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 2011-07-26
      相关资源
      最近更新 更多