у нас есть проблема, которую мы не можем воспроизвести, это происходит случайным образом на нашем веб-сервере (64-битный Windows Server 2008 Datacenter, размещенный на Amazon EC2) под управлением ASP.NET 4.
Он начинается с предупреждения ASP.NET в журнале ошибок (странный запрос GET с очень длинным URL):
Информация об исключении:
Тип исключения: HttpException
Сообщение об исключении: длина URL-адреса для этого запроса превышает настроенное значение maxUrlLength.
в System.Web.HttpRequest.ValidateInputIfRequiredByConfig ()
в System.Web.HttpApplication.PipelineStepManager.ValidateHelper (контекст HttpContext)
Тогда ошибка:
Идентификатор приложения: / LM / W3SVC / 2 / ROOT
Идентификатор процесса: 4604
Исключение: System.Threading.ThreadAbortException
Сообщение: Тема была прервана.
StackTrace: at System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, контекст HttpContext)
в System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper (IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, флаги Int32)
в System.Web.Hosting.PipelineRuntime.ProcessRequestNotification (IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 флаги)
Тогда еще одна ошибка:
Идентификатор приложения: DefaultDomain
Идентификатор процесса: 4604
Исключение: System.Threading.ThreadAbortException
Сообщение: Тема была прервана.
StackTrace:
А потом ошибка приложения:
Сбой приложения w3wp.exe, версия 7.0.6002.18005, отметка времени 0x49e03238, неисправный модуль kernel32.dll, версия 6.0.6002.18005, отметка времени 0x49e041d1, код исключения 0xe0434352, смещение ошибки 0x00000000000176fd, идентификатор процесса 0x% 9, время запуска приложения 0x% 9, время запуска приложения 0x% 10.
Windbg
Мне удалось получить дамп для сбоя с adplus, но я действительно не знаю, что искать. Ранее я устранял некоторые потоки стека с помощью Windbg, но я не знаю, какой подход использовать для этой ошибки.
! Pe на ветке с ошибкой:
Объект исключения: 00000001c323d948
Тип исключения: System.Threading.ThreadAbortException
Сообщение: Тема была прервана.
InnerException:
StackTrace (генерируется):
StackTraceString:
HResult: 80131530
! Clrstack
Детский SP IP-сайт вызова
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 клр! ?? :: FNODOBFM :: string'+0xafb03<br>
00000000
15f7f4c0 000007fe f27fcce3 clr!UM2MDoADCallBack+0x9e<br>
00000000
15f7f530 000007fe f845ba59 clr!UMThunkStubAMD64+0x273<br>
00000000
15f7f5c0 000007fe f8458f02 webengine4!W3_MGD_HANDLER::ProcessNotification+0x79<br>
00000000
15f7f5f0 000007fe f27d4595 webengine4!ProcessNotificationCallback+0x43<br>
00000000
15f7f620 000007fe f27d3ac8 clr!UnManagedPerAppDomainTPCount::DispatchWorkItem+0x181<br>
00000000
15f7f6d0 000007fe f294658f clr!ThreadpoolMgr::NewWorkerThreadStart+0x2e5<br>
00000000
15f7f770 000007fe f29447c6 clr!ThreadpoolMgr::WorkerThreadStart+0x3b<br>
00000000
15f7f810 00000000 76c1be3d clr!Thread::intermediateThreadProc+0x7d<br>
00000000
15f7fbd0 00000000 76d56a51 kernel32!BaseThreadInitThunk+0xd<br>
00000000
15f7fc00 00000000`00000000 ntdll! RtlUserThreadStart + 0x1d
Кто-нибудь знает, что это может быть? Или можете указать мне правильное направление для анализа с помощью Windbg?
Edit:
Входящие URL-адреса обычно выглядят так:foo.bar.com/wEPDwULLTE1MTk5MzIzMTFkGAMFFmN0bDAwJGRiMSRkZGxEYXRhYmFzZXMPFCsAAmRkZAU7Y3RsMDAkU2VhcmNoQ2xvdWQxJF9SaWdodENvbHVtbiRfU2VhcmNoQ2xvdWQkbHN2U2VhcmNoVGVybXMPFCsADmRkZGRkZGQ8KwAUAAIUZGRkZgL/D2QFK2N0bDAwJHN1cnZleTEkX1JpZ2h0Q29sdW1uJF9JUiR1c2VyQ29tbWVudHMPFCsAA2VnZGQeuUcvQDsShDIp1k7YjJw70Ry 9 / Q1B9Sd1egrovYgkw == /
1117 *, но я нашел в журнале событий, что это произойдет в течение этого URLs, как этот Aswell: foo.bar.com/& ( «опасный запрос»в .NET 4)