Иногда вы можете увидеть эту страшную ошибку в журнале событий 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, поможет нам сделать это.
- Запустите IL дизассемблер и откройте свою библиотеку.
- Меню: просмотр -> MetaInfo -> Показать !, большое внимание уделите контрольному списку меню, особенно флажкам Raw.
- Появится диалоговое окно, найдите комбинацию
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, но в этом исключении это может работать неправильно.
Подробнее
Поиск метода для параметров корзины отчетов об ошибках