Отладка .NET Production - PullRequest
       8

Отладка .NET Production

6 голосов
/ 10 сентября 2008

У меня уже некоторое время есть приложение для Windows, и оно настроено на отправку нам отчетов об ошибках, когда оно генерирует исключения. Большинство из них довольно наглядны и помогают мне быстро найти проблему (я использую исключительный блок MS Application).

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

У меня нет физического доступа к этим клиентским машинам. Какие стратегии я могу использовать для отладки? Было бы лучше встроить некоторую трассировку в код или есть другие альтернативы?

Спасибо.

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

Ответы [ 5 ]

2 голосов
/ 10 сентября 2008

Один из вариантов - создать (мини) файл дампа как можно ближе к точке, где выдается исключение. В этой статье рассказывается, как сделать это из управляемого кода.

Затем вы можете загрузить файл дампа в Visual Studio или WinDbg и проверить его с помощью SOS

2 голосов
/ 10 сентября 2008

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

Затем у вас может быть кнопка или опция меню, которую пользователь может щелкнуть, чтобы автоматически отправить вам эту информацию по электронной почте в момент возникновения проблемы, или у них может быть возможность получить файл, чтобы он мог передать его Вы по-другому.

Вы даже можете встроить диагностический код, чтобы запустить проверку целостности системы и отправить вам отчет (возможно, он запускает все ваши модульные тесты, чтобы проверить, работают ли они в этой системе).

1 голос
/ 10 сентября 2008

Smart Inspect от Gurock Software много раз пригодился мне. Это очень легко вставить в приложение .NET и дает вам чрезвычайно мощный контроль при анализе файлов журнала. Он имеет уровни журналов, которые позволяют вам отключить определенные функции, кроме определенных случаев, чтобы не потерять производительность.

У них даже есть серверное программное обеспечение, к которому ваше программное обеспечение может подключаться для сохранения журналов, когда у вас нет полного доступа к машинам. Например, у вас может быть сервер, работающий по адресу www.yourdomain.com. Ваше программное обеспечение будет иметь возможность конфигурации для включения отладки. Smart Inspect будет настроен на отправку данных журнала на ваш сервер (и, возможно, в локальный файл), чтобы вы могли вести оперативную регистрацию независимо от того, где запущено программное обеспечение.

Smart Inspect очень прост в настройке и имеет множество функций, которые вы можете использовать, чтобы помочь. Я использую его для отладки мощных многопоточных серверных приложений на лету, не отключая машины. Он имеет все возможности для отслеживания различных процессов, потоков и машин.

1 голос
/ 10 сентября 2008

Я всегда использую этот модуль от Джеффа для необработанных исключений, отправки мне электронного письма со стековой трассировкой и т. Д.

0 голосов
/ 10 сентября 2008

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

http://support.microsoft.com/kb/307024

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