2011-01-12 55 views
1

我们有我们无法重现的问题,它随机发生运行ASP.NET 4w3wp.exe的崩溃 - ThreadAbortException

我们的Web服务器(Windows Server 2008数据中心64位,托管在亚马逊EC2)上

它在错误日志中ASP.NET警告(用一个很长的URL一个奇怪的GET请求)开始:

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)

然后一个错误:

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.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)

然后另一个错误:

Application ID: DefaultDomain
Process ID: 4604
Exception: System.Threading.ThreadAbortException
Message: Thread was being aborted.
StackTrace:

然后应用程序错误:

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的

我得到了一个转储与ADPlus的崩溃,但我真的不知道该找什么。我之前用Windbg解决了一些堆栈溢出问题,但我不知道使用哪种方法来处理这个错误。

线程与错误的PE:!

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]

ķ

Child-SP RetAddr Call Site
00000000 15f7edf0 000007fe f2826e39 kernel32!RaiseException+0x39
00000000 15f7eec0 000007fe f2bbbfb4 clr!RaiseTheExceptionInternalOnly+0x363
00000000 15f7eff0 000007fe f2bbc906 clr!RaiseTheException+0xa4
00000000 15f7f020 000007fe f2c3b99b clr!BStrFromString+0x66
00000000 15f7f050 000007fe f2c3b9a9 clr!RealCOMPlusThrow+0x3b
00000000 15f7f0c0 000007fe f2c93156 clr!RealCOMPlusThrow+0x9
00000000 15f7f0f0 000007fe f2b229f3 clr!Thread::RaiseCrossContextException+0x2a7
00000000 15f7f310 000007fe f2830886 clr! ?? ::FNODOBFM:: string'+0xafb03
00000000
15f7f4c0 000007fe f27fcce3 clr!UM2MDoADCallBack+0x9e
00000000
15f7f530 000007fe f845ba59 clr!UMThunkStubAMD64+0x273
00000000
15f7f5c0 000007fe f8458f02 webengine4!W3_MGD_HANDLER::ProcessNotification+0x79
00000000
15f7f5f0 000007fe f27d4595 webengine4!ProcessNotificationCallback+0x43
00000000
15f7f620 000007fe f27d3ac8 clr!UnManagedPerAppDomainTPCount::DispatchWorkItem+0x181
00000000
15f7f6d0 000007fe f294658f clr!ThreadpoolMgr::NewWorkerThreadStart+0x2e5
00000000
15f7f770 000007fe f29447c6 clr!ThreadpoolMgr::WorkerThreadStart+0x3b
00000000
15f7f810 00000000 76c1be3d clr!Thread::intermediateThreadProc+0x7d
00000000
15f7fbd0 00000000 76d56a51 kernel32!BaseThreadInitThunk+0xd
00000000
15f7fc00 00000000`00000000 ntdll!RtlUserThreadStart+0x1d

任何人有一个线索可能是什么?或者可以点我正确的方向来分析Windbg?

编辑: 进入的网址通常是这样的: foo.bar.com/wEPDwULLTE1MTk5MzIzMTFkGAMFFmN0bDAwJGRiMSRkZGxEYXRhYmFzZXMPFCsAAmRkZAU7Y3RsMDAkU2VhcmNoQ2xvdWQxJF9SaWdodENvbHVtbiRfU2VhcmNoQ2xvdWQkbHN2U2VhcmNoVGVybXMPFCsADmRkZGRkZGQ8KwAUAAIUZGRkZgL/D2QFK2N0bDAwJHN1cnZleTEkX1JpZ2h0Q29sdW1uJF9JUiR1c2VyQ29tbWVudHMPFCsAA2VnZGQeuUcvQDsShDIp1k7YjJw70Ry 9/Q1B9Sd1egrovYgkw ==/

,但我在事件日志中发现,这种发生此网址,这样as well: foo.bar.com/ & (.NET 4中的“危险请求”)

+0

启用IIS日志记录以查看实际的传入url /查询字符串。 – leppie 2011-01-12 08:46:42

回答

0

您应至少加载符号,然后查看调用堆栈中显示的正确字符串。

如果您无法处理此类分析,我认为通过http://support.microsoft.com打开支持案例对您有好处。