C # Не удается найти ошибку System.Exception, запущенную на сайте клиента - PullRequest
0 голосов
/ 10 апреля 2009

У меня есть клиент, который не может запустить нашу программу без сбоев и создания ошибки ниже в журнале событий. Как всегда, он отлично работает на наших компьютерах (пробовал 6+), но клиент говорит, что, как только щелкнет что-нибудь в программе, он получит ошибку ниже.

EventType clr20r3, P1 datamonitor.exe, P2 1.0.0.3, P3 49dbd380, P4 datamonitor, P5 1.0.0.3, P6 49dbd380, P7 e9, P8 e5, система P9 исключение, P10 NIL

Любые предложения о том, как найти такую ​​проблему?

Спасибо

Ответы [ 5 ]

1 голос
/ 10 апреля 2009

Если вы не можете изолировать создаваемое исключение, посмотрите, позволит ли клиент вам скопировать Runtime Debugger . Это небольшой, легкий и позволит вам поймать исключение и выяснить, откуда оно.

1 голос
/ 10 апреля 2009

Я подозреваю, что на компьютерах вашего клиента отсутствуют некоторые необходимые библиотеки. Либо они используют другую версию .Net, либо вы создали свой проект, ссылаясь на то, что вы установили, а они - нет. Я бы дважды проверил, что вы включили все ваши зависимости, и попытался бы настроить компьютер для репликации конфигурации вашего клиента, то есть той же ОС, той же версии .Net и т. Д. Это должно помочь вам диагностировать проблему.

0 голосов
/ 16 декабря 2011

Я только что преодолел этот вид сценария и написал пост в блоге, рассказывающий об этом. Но в основном в вашем случае произошел сбой datamonitor.exe из-за исключения system.exception. Если вы возьмете IL Dissassembler, вы сможете увидеть, какой класс и метод у него проваливаются. p7 в вышеуказанной ошибке (e9) - это функция, которую вам нужно искать. Это можно найти, выполнив поиск dll для 06000e9 с помощью диссемблера IL.

http://corymathews.com/eventtype-clr20r3-p1-w3wp-exe-system-nullreferenceexception/

0 голосов
/ 10 апреля 2009

У вас есть какой-либо вход в приложение? Это было бы то, где я начал бы, ловил исключение и регистрировал это.

Кроме того, кажется необычным, что System.Exception выбрасывается куда-либо, возможно, ищет вашу кодовую базу (потому что, насколько я помню, все в фреймворке должно вызывать более конкретное исключение).

0 голосов
/ 10 апреля 2009

Вы можете добавить код для перехвата необработанных исключений в своем коде, добавив метод в AppDomain.UnhandledExceptionEventHandler.

См. Этот пример:

http://shiman.wordpress.com/2008/11/18/c-net-exception-appdomainunhandledexception/

С этим вы можете перехватить это исключение и выйти из системы более подробно, чтобы у вас было больше возможностей.

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