Ответ 1
Иногда вы можете увидеть эту страшную ошибку в журнале событий 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 offset
P9: имя исключения (хешировано, потому что имя слишком длинное)
Разрешение
Довольно очевидно, что нам нужно найти P7, P8. IL Disassembler, инструмент, включенный в Visual Studio, поможет нам в этом.
- Выполните IL Disassembler и откройте свою библиотеку.
- Меню: view → MetaInfo → Show!, обратите внимание на контрольный список меню, особенно на Raw.
- Появится диалоговое окно, найдите комбинацию
06000
с62e
, и вы увидите имя метода класса и, посмотрев вверх, вы увидите первый 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 zxkyzcs5wacordmkttdkr1xouosi00fr, P10 NIL.
Если вы путешествуете в сети, вы можете увидеть решение, подобное тому, которое Microsoft подготовила: http://support.microsoft.com/kb/911816, но он может работать неправильно для этого исключения.