1

我正在使用 windows server 2008 server 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 下的虚拟机上工作。

有没有人在这方面有类似的经验?

非常感谢!

4

0 回答 0