为应用程序池“Classic .NET AppPool”提供服务的进程与 Windows 进程激活服务发生致命通信错误

StackOverflow https://stackoverflow.com/questions/1445566

我正在 Windows Server 2008 上的 IIS 7 上运行 ASP.NET 3.5 Web 应用程序。

今天下午早些时候我收到以下错误:

HTTP Error 503. The service is unavailable.

我查看了事件日志并发现:

A process serving application pool 'Classic .NET AppPool' suffered a fatal communication error with the Windows Process Activation Service. The process id was '3328'. The data field contains the error number.

以下是该活动的完整详细信息:

Log Name:      System
Source:        Microsoft-Windows-WAS
Date:          18/09/2009 14:58:31
Event ID:      5011
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      computername
Description:
A process serving application pool 'Classic .NET AppPool' suffered a fatal communication error with the Windows Process Activation Service. The process id was '3328'. The data field contains the error number.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-WAS" Guid="{5 .. 0}" EventSourceName="WAS" />
    <EventID Qualifiers="32768">5011</EventID>
    <Version>0</Version>
    <Level>3</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2009-09-18T13:58:31.000Z" />
    <EventRecordID>23552</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>System</Channel>
    <Computer>computername</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="AppPoolID">Classic .NET AppPool</Data>
    <Data Name="ProcessID">3328</Data>
    <Binary>6D000780</Binary>
  </EventData>
</Event>

这导致:

Application pool 'Classic .NET AppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.

以下是该活动的完整详细信息:

Log Name:      System
Source:        Microsoft-Windows-WAS
Date:          18/09/2009 15:03:05
Event ID:      5002
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      computername
Description:
Application pool 'Classic .NET AppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-WAS" Guid="{5 .. 0}" EventSourceName="WAS" />
    <EventID Qualifiers="49152">5002</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2009-09-18T14:03:05.000Z" />
    <EventRecordID>23557</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>System</Channel>
    <Computer>computername</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="AppPoolID">Classic .NET AppPool</Data>
    <Binary>
    </Binary>
  </EventData>
</Event>

结论如下:HTTP 错误 503。该服务不可用。

请有人帮助我确定这是如何发生的以及我需要采取哪些措施来防止将来再次发生这种情况。

有帮助吗?

解决方案

这一个是非常讨厌的一个。我建议得到了 IIS调试诊断工具。您可以在您的应用程序池的属性关闭“快速失败保护”可能缓解症状,但将只是掩盖了问题。这是怎么回事是您的应用程序正在经历一个异常经常/如此反复,服务自行关闭。你需要运行诊断工具来捕获所有进出找到真实存在的除外。

这是一个非常艰苦的任务,因为该工具会收集垃圾的千兆去筛选。如果你幸运的话,关闭“快速失败保护”的可能允许例外,通过进入到浏览器,但我的猜测是,服务器最终只会挂。

其他提示

如果您正在使用NServiceBus确保任何帐号的应用程序池下运行有权限读出的消息队列。

NServiceBus运行在应用程序启动后台任务10秒后该timesout,导致如果它不能从队列读取的w3wp进程被杀死。 N(5默认)W3WP崩溃快速失败保护踢和停止应用程序池。之后

http://blog.jonathanoliver.com/十一分之二千零十/ nservicebus-W3WP-EXE流程-崩溃/

它很可能是由一个无限循环引起的。

(我刚刚有同样的问题。)所以,你将不得不寻找在代码使用循环,看看是否移除其中一个停止错误的地方。一旦你找到了罪魁祸首,那么你可以尝试找出什么导致它无限循环。

我刚刚找到并解决了同样令人讨厌的问题。有几件事可能会导致问题:

  • Server.Transfer() 循环
  • 在某些情况下调用 CurrentThread.Abort() 。(就像在 Server.Transfer() 之后一样!)

解决这些问题就是为我们解决问题。

我有这个问题,事件观看者已经“模块DLL C:\ Windows \ System32下\的RpcProxy \ RpcProxy.dll的加载失败的数据是错误”这篇文章不得不更正此步骤: http://forums.iis.net/t/1154189.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top