【发布时间】:2017-01-24 17:26:27
【问题描述】:
我们有一系列 ASP.Net Web API 2.0 应用程序运行在一个通用服务器(Server 2012 和 IIS 8.5)上。每个应用程序都在自己的应用程序池中。堆栈是 .NET 4.5,RabbitMQ 驱动程序 3.6.6 和 MongoDB 驱动程序 1.11,postsharp express
最近,应用程序开始随机崩溃并出现访问冲突异常。
查看崩溃转储并没有提供特别有用的信息……至少对我来说没有。以下是导致崩溃的两个(一致的)原因:
In w3wp.exe.13880.dmp the assembly instruction at ntdll!RtlpxLookupFunctionTable+3b in C:\Windows\System32\ntdll.dll from Microsoft Corporation has caused an access violation exception (0xC0000005) when trying to write to memory location 0x06d00ff8 on thread 0
In w3wp.exe.1628.dmp the assembly instruction at ntdll!RtlAcquireSRWLockShared+b in C:\Windows\System32\ntdll.dll from Microsoft Corporation has caused an access violation exception (0xC0000005) when trying to write to memory location 0x611e0ff8 on thread 0
此外,所有转储似乎都开始了崩溃(和其他几个线程)的堆栈跟踪:
kernel32!ExitProcessImplementation+a
mscoreei!RuntimeDesc::ShutdownAllActiveRuntimes+27b
msvcrt!_crtCorExitProcess+59
msvcrt!_crtExitProcess+d
msvcrt!doexit+15b
w3wp!ParseCommandLine+bec
kernel32!BaseThreadInitThunk+22
ntdll!RtlUserThreadStart+34
任何想法如何更有效地调试?我尝试了不同的内存转储、日志记录和从转储调试托管内存的方法......但到目前为止没有成功。任何指针将不胜感激。
【问题讨论】:
标签: c# rabbitmq asp.net-web-api2 mongodb-.net-driver iis-8.5