Отладка приложения в рабочей среде

Некоторые странные ошибки возникают в процессе производства нашего самодельного приложения, написанного на C # с использованием фреймворка 3.5. Приложение не ведет журнал (я знаю ...), и сбои не дают нам полезной информации даже в средстве просмотра событий. Более того, когда она существует, обработка ошибок оставляет желать лучшего.

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

Мы хотим «отладить» приложение в производственной среде. Мы мечтаем о чем-то вроде использования инструмента с функцией Visual Studio Debugger и ILSpy. То есть пошаговое выполнение с разобранным кодом.

Что ж, каковы решения, если у нас нет журналов или обработки ошибок для отладки приложения в производственной среде?


person JiBéDoublevé    schedule 26.06.2012    source источник
comment
Добавление журнала в ту же версию и повторное развертывание - не вариант?   -  person Marcel N.    schedule 26.06.2012
comment
Что это за приложение? ASP.NET, служба Windows, развернутое настольное приложение, что-то еще?   -  person MNGwinn    schedule 26.06.2012
comment
Насколько я помню, Visual Studio может выполнять отладку на удаленном компьютере - просто запустите службу отладки на сервере PROD и разверните скомпилированный код DEBUG ... Достаточно неприятно, но более чем ничего ...   -  person Tisho    schedule 26.06.2012
comment
@tisho: отличная функция, но когда к нему подключен отладчик и код приостанавливается в точке останова, приложение больше не отвечает. Это можно рассматривать как прерывание обслуживания.   -  person Steve B    schedule 26.06.2012
comment
Конечно, как я уже сказал, это неприятный прием. Но вы можете запустить новый экземпляр (сайт, сервис) и отлаживать его отдельно. Он все еще находится на удаленном сервере. Проблема в том, что проблема возникает после высокой нагрузки - вы не можете легко смоделировать высокую нагрузку на частном экземпляре .. Просто идеи ...   -  person Tisho    schedule 26.06.2012
comment
У вас есть файлы символов отладки для точной версии кода, развернутого в производственной среде?   -  person Chris Dickson    schedule 26.06.2012
comment
@ JiBéDoublevé: Многие люди предлагают вам здесь советы, но я не вижу, чтобы вы на них отвечали. Так что насчет вопроса енота. Возможно ли добавить предложение try / catch на верхнем уровне приложения, в котором вы регистрируете информацию об исключении и трассировку стека? Поскольку он находится внутри компании, у вас есть исходный код, верно? Тогда почему бы не развернуть эту слегка измененную версию, которая собирает данные за вас, хотя вам не нужно смотреть ее все время? Поместив его на верхний уровень приложения, может быть, вокруг app.run (), у вас есть одно место, где вы модифицируете код, поэтому легко отказаться   -  person philologon    schedule 28.06.2012
comment
Чтобы ответить на ваши вопросы: Повторное развертывание приложения - это не вариант (политическое решение), изменение кода - не вариант (политическое решение). Это приложение winform, развернутое без символов отладки. Приложение развертывается с помощью ClickOnce.   -  person JiBéDoublevé    schedule 29.06.2012
comment
stackoverflow.com/questions/3015429/   -  person 0lukasz0    schedule 27.06.2013


Ответы (1)


См. Как настроить удаленную отладку

Изменить: после просмотра некоторых ответов на основной ответ мое предложение продолжается с

  • Добавьте в код больше блоков Try / Catch.
  • Увеличьте количество проверок нулевых переменных и списков
  • Добавьте больше обработки ошибок. Используйте стратегию «разделяй и властвуй» для этой ситуации. Определите, где находятся ошибки, и начните вводить обработку ошибок, ведение журнала и общие сведения, чтобы улучшить код.

Если вы сделаете эти пункты, проблема будет решена; теперь у вас есть инструменты для отслеживания ошибок.

person ΩmegaMan    schedule 26.06.2012