IIS池缓存在malloc和free,COM +上被阻止

时间:2012-04-13 09:28:19

标签: asp.net iis-7 deadlock hang

我正在使用Windows服务器2008服务器x64和IIS 7处理来自asp.net页面逻辑的COM对象。通常,经过几个小时的工作,用户无法访问该站点,因为它被阻止,直到iisreset没有完成。

以下是DebugDiag工具的崩溃/挂起报告:

在w3wp.dmp中检测到线程41拥有的0x053901f8处可能阻塞或泄漏的关键部分 这个锁的影响 47,13%的线程被阻止(大约20个线程)

以下功能正在尝试进入此关键部分

ntdll!RtlpAllocateHeap+18c6
ntdll!RtlpFreeHeap+1334

及时管理com的互操作对象。 堆栈跟踪如下:

ntdll!NtWaitForSingleObject+a    
ntdll!RtlpWaitOnCriticalSection+ea    
ntdll!RtlEnterCriticalSection+f4    
ntdll!RtlpAllocateHeap+18c6    
ntdll!RtlAllocateHeap+151    
msvcr100!malloc+5b 

ntdll!NtWaitForSingleObject+a    
ntdll!RtlpWaitOnCriticalSection+ea    
ntdll!RtlEnterCriticalSection+f4    
ntdll!RtlpFreeHeap+1334    
ntdll!RtlFreeHeap+1a2    
kernel32!HeapFree+a    
msvcr100!free+1c

我猜,管理记忆中存在腐败现象。站点在VMware Server下的虚拟机上工作。

之前有没有人有类似的经历?

非常感谢!

0 个答案:

没有答案