Необработанное исключение, которое вызвало сбой приложения с «EventType clr20r3, P1 w3wp.exe» в журнале, но никаких подробностей там нет - PullRequest
12 голосов
/ 21 декабря 2009

На рабочем сервере я вижу это событие из системного средства просмотра событий при сбое приложения ASP .NET:

EventType clr20r3, P1 w3wp.exe, P2 6.0.3790.3959, P3 45d691cc,
P4 app_web_default.aspx.cdcab7d2, P5 0.0.0.0, P6 4b2e4bf0, P7 4, P8 4, P9
system.dividebyzeroexception, P10 NIL. *

Относится к категории «Отчеты об ошибках .NET Runtime 2.0».

Но я не могу найти событие, относящееся к категории «ASP.NET 2.0.50727.0», которое может дать мне это исключение в подробном представлении, например:

An unhandled exception occurred and the process was terminated.  
Application ID: /LM/W3SVC/505951206/Root  
Process ID: 1112  
Exception: System.DivideByZeroException  
Message: Attempted to divide by zero.  
StackTrace:    
   at _Default.Foo(Object state)  
   at System.Threading.ExecutionContext.runTryCode(Object userData)  
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)  
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)  
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)  
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)  
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp

У меня есть второе событие на моем компьютере разработчика, потому что там установлена ​​Visual Studio? Если так, как я могу отключить это, чтобы я мог эмулировать производственную среду?

1 Ответ

36 голосов
/ 09 мая 2010

Иногда вы можете увидеть эту страшную ошибку в журнале событий Windows:

EventType clr20r3, P1 w3wp.exe, P2 6.0.3790.3959, P3 45d6968e, P4 dp.ui, P5 3.9.7.55, P6 4b49a307, P7 62e, P8 0, P9 system.stackoverflowException, P10 NIL.

Как вы можете видеть, это неясно и не имеет следа стека, и вы не имеете никакого представления о P1, ..., P10 и любых числах. Вы знаете, какая худшая часть этого; единственное, что заставляет вас не спать и заставлять вас желать, если этого не было в журнале, да! Сообщение «dp.ui».

Причина

ОК, кроме всех шуток и пожеланий, возникает исключение «system.stackoverflowexception», когда происходит бесконечный цикл или вызов метода, поэтому вы должны проверить все источники на предмет любого рекурсивного вызова метода, и вы можете запустить Visual Studi для отладки. тот. Но это невозможно и практически невозможно, даже если ваше приложение не является корпоративным. Таким образом, вы должны Google для P1, ..., P10. Я сделал это вместо тебя, так что просто расслабься и расслабься!

P1 : имя приложения, в котором произошла эта ошибка
P2 : версия приложения
P3 : отметка времени применения
P4 : название сборки / модуля
P5 : сборка / версия модуля
P6 : метка времени сборки / модуля
P7 : MethodDef
P8 : смещение IL
P9 : имя исключения (хешируется, поскольку имя слишком длинное)

Разрешение

Совершенно очевидно, что нам нужно найти P7, P8. IL Disassembler, инструмент, включенный в Visual Studio, поможет нам сделать это.

  1. Запустите IL дизассемблер и откройте свою библиотеку.
  2. Меню: просмотр -> MetaInfo -> Показать !, большое внимание уделите контрольному списку меню, особенно флажкам Raw.
  3. Появится диалоговое окно, найдите комбинацию 06000 с 62e, и вы увидите MethodName класса, а при поиске вы увидите первый TypeDef, который объявит класс. И это все!

Когда вы заходите в свое приложение, вы можете увидеть рекурсивный вызов, и вы должны проверить условие, которое делает этот цикл завершенным!

В Windows и приложении-службе этому исключению может понравиться следующее, и вам следует проверить «sib.infobase.workflow.services.exe» с помощью «IL Disassembler»:

EventType clr20r3, P1 sib.infobase.workflow.services, P2 1.0.2740.20114, P3 468a74f5, P4 sbpscs, P5 1.0.2740.20087, P6 468a74be, P7 1c, P8 120, P9 zxkyzcs5wacr010f0.

Если вы путешествуете по сети, вы можете увидеть решение, которое Microsoft подготовила: http://support.microsoft.com/kb/911816, но в этом исключении это может работать неправильно.

Подробнее

Поиск метода для параметров корзины отчетов об ошибках

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...