Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 为应用程序池提供服务的进程&x27;X';遇到与Windows Process Activation Service的致命通信错误_Asp.net_Debugging_Http_Iis 7_Windbg - Fatal编程技术网

Asp.net 为应用程序池提供服务的进程&x27;X';遇到与Windows Process Activation Service的致命通信错误

Asp.net 为应用程序池提供服务的进程&x27;X';遇到与Windows Process Activation Service的致命通信错误,asp.net,debugging,http,iis-7,windbg,Asp.net,Debugging,Http,Iis 7,Windbg,我正在IIS 7.5下运行ASP.NET 4.0应用程序。每天有好几次,我们的应用程序池意外地被回收。发生这种情况时,我们的系统日志显示以下事件: 为应用程序池“X”提供进程服务的应用程序池与Windows进程激活服务发生致命通信错误。进程id为“5768”。数据字段包含错误号。 或 为应用程序池“X”提供服务的进程未能响应ping。进程id为“1032”。 几乎总是在应用程序日志中的同一时间出现相应的事件,如下所示: Faulting application name: w3wp.exe, v

我正在IIS 7.5下运行ASP.NET 4.0应用程序。每天有好几次,我们的应用程序池意外地被回收。发生这种情况时,我们的系统日志显示以下事件:

为应用程序池“X”提供进程服务的应用程序池与Windows进程激活服务发生致命通信错误。进程id为“5768”。数据字段包含错误号。

为应用程序池“X”提供服务的进程未能响应ping。进程id为“1032”。

几乎总是在应用程序日志中的同一时间出现相应的事件,如下所示:

Faulting application name: w3wp.exe, version: 7.5.7600.16385, time stamp: 0x4a5bcd2b
Faulting module name: clr.dll, version: 4.0.30319.269, time stamp: 0x4ee9ae83
Exception code: 0xc00000fd
Fault offset: 0x00001916
Faulting process id: 0x508
Faulting application start time: 0x01cd4d8958ecf9ad
Faulting application path: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: 8dcc413b-b98a-11e1-8075-001c23d6d910
因此,我安装并设置了一个崩溃规则,指定了“特定的IISWeb应用程序池”,没有第一次机会异常的日志记录,在“高级设置”(异常、断点、事件)下没有任何内容

我还(同时)使用以下命令行从Windows调试工具运行ADPlus:

adplus -crash -pn w3wp.exe -NoDumpOnFirst -o c:\logs
但是,自从我连接了调试器之后,我在系统日志中收到了几条“警告”级别的消息(关于“进程服务应用程序池'X'遇到了致命的通信错误…”),但我不再在应用程序日志中收到相应的错误级别事件

我唯一能得到的是以下内容(大约有50个):

退出代码0x800703e9表示某个地方出现堆栈溢出,这是幸运的,因为一旦找到它,应该很容易修复

但是,为了做到这一点,我需要从崩溃转储中获得更多信息,以便可以使用WinDbg打开它们,并使用“!clrstack”命令查明我的问题

我的问题是:我是否错误地配置了调试工具,或者我误解了事件日志?每当我在系统日志中看到关于“Windows Process Activation Service的致命通信错误”的事件时,我们的应用程序池似乎都在循环使用,但是当这些事件发生时,我没有从IIS调试工具或ADPlus获得任何崩溃转储信息。由于某种原因,由于我已连接了调试器,因此在应用程序日志中不会再出现与系统日志警告事件对应的“错误”事件。不知道为什么。我需要以某种方式获取包含CLR信息的完整崩溃转储,以便找出问题所在

我唯一想提及的另一件事是Windows错误报告服务没有运行。不确定是否需要


感谢您的帮助。

应用程序日志中的异常代码和线程退出代码都表明您存在堆栈溢出。令人费解的是,当线程带堆栈溢出错误退出时,为什么进程没有崩溃。无论如何,要启用堆栈溢出异常中断,命令如下:

sxe sov
请注意,您需要在本例中使用x86版本的调试器,因为您的应用程序池配置为32位进程。

sxe sov