我们客户端的Web应用程序突然以随机间隔重新启动。对于每次重新启动,我们发现在Windows事件日志中这样的条目:ASP.NET Web应用程序死锁 - 认为它是由SQL Server锁定造成的
Event Type: Warning
Event Source: W3SVC-WP
Event Category: None
Event ID: 2262
Date: 2/21/2010
Time: 1:33:52 PM
User: N/A
Computer: LIQUID-NXCFZ9DJ
Description:
ISAPI 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll' reported itself as unhealthy for the following reason: 'Deadlock detected'.
这已在3周内发生过10次,其中几个是在几个小时内2〜3次,并且也将在一周没有它发生。
在我们有可能70-80客户端连接,像这样的崩溃转储:
GET request for <path here>
Mapped To URL <mapped path>
HTTP Version HTTP/1.1
SSL Request False
Time alive 00:55:24
QueryString <query string here>
Request mapped to
HTTP Request State HTR_READING_CLIENT_REQUEST
Native Request State NREQ_STATE_PROCESS
(这是55分钟!没有任何理由客户端连接应围绕长)
相关的条目中的machine.config:
<system.net>
<connectionManagement>
<add address="*" maxconnection="200" />
</connectionManagement>
</system.net>
和(内侧):
<deployment retail="true" />
<!--<customErrors mode="Off"/>-->
<processModel autoConfig="true"
memoryLimit="60"
maxIoThreads="200"
minIoThreads="30"
minWorkerThreads="40"
maxWorkerThreads="200"
clientConnectedCheck="00:00:05" />
<httpRuntime
minFreeThreads="20"
minLocalRequestFreeThreads="10"
enableKernelOutputCache="false"
maxRequestLength="10240" />
最近这段时间我们可以看到它发生的情况,在Sql Server中看到大约20个查询都处于“挂起”状态。看起来他们可能都与一张桌子相关(项目表,这是一个非常重要的项目表,用于很多不同的操作)。
我们不确定最好的事情是在问题的中间。发生崩溃时,Sql Server被清除。
任何有关正在发生的事情的指导或如何了解发生了什么,都将非常感激。
好问题。但请学会格式化您的问题。当您输入问题时,请参阅黄色的“如何格式化”框。 – 2010-03-06 00:58:11