w3wp.exe crash - ThreadAbortException
we have a problem that we can't reproduce, it happens randomly on our web server (Windows Server 2008 Datacenter 64-bit, hosted on Amazon EC2) running ASP.NET 4.
It starts with a ASP.NET warning in the error log (a strange GET request with a really long URL):
Exception information:
Exception type: HttpException Exception message: The length of the URL for this request exceeds the configured maxUrlLength value. at System.Web.HttpRequest.ValidateInputIfRequiredByConfig() at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
Then an error:
Application ID: /LM/W3SVC/2/ROOT
Process ID: 4604 Exception: System.Threading.ThreadAbortException Message: Thread was being aborted. StackTrace: at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.H开发者_如何学Pythonosting.PipelineRuntime.ProcessRequestNotification(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
Then another error:
Application ID: DefaultDomain
Process ID: 4604 Exception: System.Threading.ThreadAbortException Message: Thread was being aborted. StackTrace:
And then the application error:
Faulting application w3wp.exe, version 7.0.6002.18005, time stamp 0x49e03238, faulting module kernel32.dll, version 6.0.6002.18005, time stamp 0x49e041d1, exception code 0xe0434352, fault offset 0x00000000000176fd, process id 0x%9, application start time 0x%10.
Windbg
I managed to get a dump for a crash with adplus, but I really don't know what to look for. I've troubleshooted some stackoverflows with Windbg before, but I don't know which approach to use for this error.
!pe on the thread with the error:
Exception object: 00000001c323d948
Exception type: System.Threading.ThreadAbortException Message: Thread was being aborted. InnerException: StackTrace (generated): StackTraceString: HResult: 80131530
!clrstack
Child SP IP Call Site
0000000015f7f078 0000000076c176fd [GCFrame: 0000000015f7f078] 0000000015f7f258 0000000076c176fd [GCFrame: 0000000015f7f258]
k
Child-SP RetAddr Call Site
0000000015f7edf0 000007fe
f2826e39 kernel32!RaiseException+0x39 0000000015f7eec0 000007fe
f2bbbfb4 clr!RaiseTheExceptionInternalOnly+0x363 0000000015f7eff0 000007fe
f2bbc906 clr!RaiseTheException+0xa4 0000000015f7f020 000007fe
f2c3b99b clr!BStrFromString+0x66 0000000015f7f050 000007fe
f2c3b9a9 clr!RealCOMPlusThrow+0x3b 0000000015f7f0c0 000007fe
f2c93156 clr!RealCOMPlusThrow+0x9 0000000015f7f0f0 000007fe
f2b229f3 clr!Thread::RaiseCrossContextException+0x2a7 0000000015f7f310 000007fe
f2830886 clr! ?? ::FNODOBFM::string'+0xafb03 00000000
15f7f4c0 000007fef27fcce3 clr!UM2MDoADCallBack+0x9e 00000000
15f7f530 000007fef845ba59 clr!UMThunkStubAMD64+0x273 00000000
15f7f5c0 000007fef8458f02 webengine4!W3_MGD_HANDLER::ProcessNotification+0x79 00000000
15f7f5f0 000007fef27d4595 webengine4!ProcessNotificationCallback+0x43 00000000
15f7f620 000007fef27d3ac8 clr!UnManagedPerAppDomainTPCount::DispatchWorkItem+0x181 00000000
15f7f6d0 000007fef294658f clr!ThreadpoolMgr::NewWorkerThreadStart+0x2e5 00000000
15f7f770 000007fef29447c6 clr!ThreadpoolMgr::WorkerThreadStart+0x3b 00000000
15f7f810 0000000076c1be3d clr!Thread::intermediateThreadProc+0x7d 00000000
15f7fbd0 0000000076d56a51 kernel32!BaseThreadInitThunk+0xd 00000000
15f7fc00 00000000`00000000 ntdll!RtlUserThreadStart+0x1d
Anybody have a clue what this could be? Or can point me in the right direction for analyzing it with Windbg?
Edit: The incoming urls usually looks like this: foo.bar.com/wEPDwULLTE1MTk5MzIzMTFkGAMFFmN0bDAwJGRiMSRkZGxEYXRhYmFzZXMPFCsAAmRkZAU7Y3RsMDAkU2VhcmNoQ2xvdWQxJF9SaWdodENvbHVtbiRfU2VhcmNoQ2xvdWQkbHN2U2VhcmNoVGVybXMPFCsADmRkZGRkZGQ8KwAUAAIUZGRkZgL/D2QFK2N0bDAwJHN1cnZleTEkX1JpZ2h0Q29sdW1uJF9JUiR1c2VyQ29tbWVudHMPFCsAA2VnZGQeuUcvQDsShDIp1k7YjJw70Ry 9/Q1B9Sd1egrovYgkw==/
but I found in the event log that this happen for this urls like this aswell: foo.bar.com/& ("dangerous request" in .NET 4)
You should at least load symbols and then see the correct strings displayed in call stack.
If you are not capable of handling such analysis, I think opening a support case via http://support.microsoft.com is good for you.
I have been trying to work out a similar issue.
I found this article which purports a process for determining the cause, I think it actually makes sense:
http://blogs.msdn.com/b/asiatech/archive/2012/06/21/how-to-troubleshoot-httpexception-request-timed-out-asp-net-4-0-64-bit.aspx
Caveat: I have not been able to sucessfully complete the steps described. I will be posting here asking for help.
精彩评论