сбой w3wp.exe - ThreadAbortException - PullRequest
       20

сбой w3wp.exe - ThreadAbortException

2 голосов
/ 12 января 2011

у нас есть проблема, которую мы не можем воспроизвести, это происходит случайным образом на нашем веб-сервере (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)

Ответы [ 2 ]

0 голосов
/ 03 февраля 2013

Я пытался решить подобную проблему.

Я нашел эту статью, которая подразумевает процесс определения причины, я думаю, что это действительно имеет смысл:

http://blogs.msdn.com/b/asiatech/archive/2012/06/21/how-to-troubleshoot-httpexception-request-timed-out-asp-net-4-0-64-bit.aspx

Предостережение: я не смог успешно завершить описанные шаги. Я буду публиковать здесь с просьбой о помощи.

0 голосов
/ 23 января 2011

Вы должны хотя бы загрузить символы и затем увидеть правильные строки, отображаемые в стеке вызовов.

Если вы не способны обработать такой анализ, я думаю, что открытие поддержки через http://support.microsoft.com хорошо для вас.

...