【问题标题】:Service Unavaiable - ApplicationPool won't start服务不可用 - 应用程序池无法启动
【发布时间】:2011-02-19 17:22:27
【问题描述】:

我有一个 WCF Web 服务,它保存在 IIS 上的应用程序池下。

最近,当我尝试调用此 Web 服务时,我得到了“服务不可用”。我尝试做的第一件事是重新启动应用程序池。我做到了,几秒钟后,它崩溃并停止了。

查看事件查看器,我发现了这些消息,目前无法帮助我找到问题所在。

为应用程序池提供服务的进程 'X' 报告失败。进程 ID 是 '11616'。数据字段包含 错误号。

有关详细信息,请参阅帮助和 支持中心 http://go.microsoft.com/fwlink/events.asp.

在得到了几个之后,我得到了这个:

应用程序池 'X' 由于被自动禁用 一系列的失败 为该应用程序服务的进程 游泳池。

有关详细信息,请参阅帮助和 支持中心 http://go.microsoft.com/fwlink/events.asp.

我已经检查了权限和应用程序池配置,但一切似乎都正常。

有人经历过吗?

提前致谢。

【问题讨论】:

    标签: .net wcf iis application-pool


    【解决方案1】:

    查看运行应用程序池的标识。如果您将其配置为在域帐户下运行(并且这是在 IIS 6.0 服务器上),请确保域帐户是本地安全组“IIS_WPG”的成员,因为需要 IIS_WPG 组的成员身份才能运行w3wp.exe 工作进程。

    【讨论】:

      【解决方案2】:

      看起来有多个可能的根本原因,但就我而言,查看应用程序事件日志时,我看到了看似不相关的事件同时发生:

      Faulting application name: svchost.exe_wuauserv, version: 6.3.9600.17415, time stamp: 0x54504177
      Faulting module name: wuaueng.dll, version: 7.9.9600.17915, time stamp: 0x558b6c14
      Exception code: 0xc0000005
      Fault offset: 0x00000000002b694f
      Faulting process id: 0x297c
      Faulting application start time: 0x01d0b52047cfa008
      Faulting application path: C:\windows\system32\svchost.exe
      Faulting module path: c:\windows\system32\wuaueng.dll
      Report Id: 87e1370b-2113-11e5-827d-a0d3c1241fdb
      Faulting package full name: 
      Faulting package-relative application ID: 
      

      这对我有帮助。 (这完全是黑魔法,我不明白它为什么会起作用。) 取自here

      开始/所有程序/右键单击命令提示符/运行方式 管理员 在命令提示符下键入以下命令:

      sc config winmgmt type=  own
      sc config wuaserv type= own
      

      这将在它们自己的 svchost.exe 中隔离 WMI 和 Windows 更新, 这样,如果再次崩溃,它们就不会影响其他正在运行的服务。 经过进一步调查,WMI 也可能是受害者,因为 问题是 OLE 可能两次未初始化代码。

      线程上的另一个人报告说只有第一个命令对他有用,尽管问题消失了:

      我按照你的指示得到了以下结果。

      Sc config winmgmt type= own
      SUCCESS
      Sc config wuaserv type= own
      [SC] OpenService FAILED 1060:
      The specified service does not exist as an installed service.
      

      虽然其中一个命令失败,但我不再获取主机 错误信息

      【讨论】:

        【解决方案3】:

        您可以尝试几件事..

        1. 尝试在 IIS 中创建一个单独的应用程序池,并在 WCF 服务中使用该应用程序池。 这样,应用程序池完全专用于 WCF,不会引发任何错误。

        2. 您是否使用内置的“网络服务”或“本地服务”或“本地系统”之一作为应用程序池标识?如果是,请尝试设置一个服务帐户并在应用程序池标识中使用它。

        希望这会有所帮助!

        【讨论】:

        • 感谢您的回复。有多个 Web 服务,每个 Web 服务都有一个应用程序池。它们使用服务帐户运行。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-04
        • 2012-06-12
        • 2016-01-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多