最近一段时间系统总是报:
ISAPI 'c:/windows/microsoft.net/framework/v2.0.50727/aspnet_isapi.dll' 报告它自身有问题,原因如下: 'Deadlock detected'
然后网站就长时间没有响应,处于假死状态。于是对于此问题进行了一下排查。网上说主要是因为代码的问题。但是到底是因为那段或者那部分的代码,就没有什么资料了。
故障环境:
win 2003 +iis6 +远程sql2000(sp4)
故障现象:
网站处于周期性假死状态。从新启动iis 就恢复正常。过4-5个小时后,故障重现。
故障原因:
网上查的。说一般是代码问题。大概因为数据库连接没有被及时断开所操成的链接超过最大连接限制。大致方向是这样。
故障点:
查了一遍代码,将web.config中的链接字符串更改了一下。
原来是<add key="constr" value="server=(local);database=m#2007;uid=user;pwd=password;Connect Timeout=500;"></add>
改成 <add key="constr" value="server=(local);database=m#2007;uid=user;pwd=password;Connect Timeout=40;max pool size=512;" />
问题解决。系统不再抱这个错误了。
故障分析:
可能是设置链接超时设置的时间太长了。所以最好根据网站的承受能力。将链接超时的时间设置的合理些。具体就要在实践中慢慢调试了。