应用程序池崩溃?

时间:2012-03-14 03:03:42

标签: asp.net web-services iis iis-7 biztalk

我在IIS7.5上运行了一个Web服务。 BizTalk将数据发送到WS。 WS打开SharePoint对象模型并将执行一些事务。在几次BizTalk调用之后,WS应用程序在EventViewer中崩溃了以下信息。

Faulting application name: w3wp.exe, version: 7.5.7601.17514, time stamp: 0x4ce7afa2
Faulting module name: MSVCR80.dll, version: 8.0.50727.6195, time stamp: 0x4dcdd833
Exception code: 0x40000015
Fault offset: 0x0000000000006a68
Faulting process id: 0x2010
Faulting application start time: 0x01cd0161a09e2134
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\Windows\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_88e41e092fab0294\MSVCR80.dll

系统日志:

  

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

2 个答案:

答案 0 :(得分:2)

上次我崩溃IIS是因为我意外地建模了一个构造函数,以便它进入一个无限循环。如果你是所有托管代码,除非你无限地打击/填充内存,否则你很难崩溃。

我建议您在代码上运行一个分析器,并从Visual Studio的Code Analyze工具中获取帮助。看看你是在处理连接,还是像我一样有无限循环。它通常是我们,而不是框架或硬件:)

ps:如果您有一次性物品,请确保使用“使用”块,这是确保您处理物品的最佳方法。 (代码分析最终将指出它们)

ps2:理解错误的另一个好方法可能是在文本文件中记录关键事件 - 或者你怀疑的东西。您可能知道很多日志库可用于dotnet(我会去NLog

答案 1 :(得分:1)

由于您使用的是SharePoint对象模型,我认为很有可能会有什么说法但我不确定这会导致应用程序错误。我想你可能会看到内存异常。令人惊讶的是,这不是BizTalk应用程序的错误。

如果在进行性能分析和查看代码后没有看到任何内容,我会就此问题与Microsoft支持部门联系。诊断应用程序故障可能很困难,对支持的调用将更快地解决问题的根源。

谢谢,