<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="w3wp进程发生死锁ISAPI '..\aspnet_isapi.dll' 报告它自身有问题，原因'Deadlock detected'" id="card1">
<p> 游客</p><p>
标题:w3wp进程发生死锁ISAPI '..\aspnet_isapi.dll' 报告它自身有问题，原因'Deadlock detected'<br/>
正文:<br/>
ISAPI 'c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll' 报告它自身有问题，原因如下: 'Deadlock detected'这个问题，字面意思是程序发生死锁了，它会导致w3wp进程重启。通常这个问题不好查到原因。我知道两个可能导致此问题的实例1. 在程序中使用了lock或者ReaderWriterLock，锁资源发生了争用下面是一小段代码：                                    1            2            3            4                                                //_rwLock的类型是ReaderWriterLock            _rwLock.AcquireWriterLock(100);            DoSomething();            _rwLock.ReleaseWriterLock();                                     这行代码是有问题的，如果在DoSomething()方法执行中发生一次异常，这个写锁就释放不了了，再次请求时就会等待直到超时，在多线程的情况下就会发生死锁'Deadlock detected' 正确的写法应该是：                                     1            2            3            4            5            6            7            8            9            10                                                try            {                _rwLock.AcquireWriterLock(100);                DoSomething();            }           <br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=585&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=585&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=585&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=585&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=585&amp;Page=3">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=585">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=585">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>