7

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

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

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

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

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

在获得了其中的几个之后,我得到了这个:

由于为该应用程序池服务的进程中的一系列故障,应用程序池“X”被自动禁用。

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

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

有人经历过吗?

提前致谢。

4

3 回答 3

12

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

于 2010-05-18T16:11:12.193 回答
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: 

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

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

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.

尽管其中一个命令失败,但我不再收到主机错误消息

于 2015-07-02T23:44:22.333 回答
0

有几件事你可以尝试..

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

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

希望这可以帮助!

于 2010-05-14T21:42:24.023 回答