Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Отладка не запускаемого приложения на удаленном ПК


Автор: V0fka 16.8.2014, 13:02
Привет!

Есть приложение, которое локально работает. На удаленном ПК оно не запускается, выдавая ошибку Windows. Что там происходит - непонятно. Я знаю, что можно подключиться к запущенному процессу на удаленном ПК. Но процесс запускается на доли секунды и завершается, соответственно я не успеваю к нему подключиться. Вопрос: как-то можно запустить отладку приложения на удаленном ПК, не подключаясь к существующему процессу?

ПС. вариант с установкой VS на удаленном ПК я рассматриваю, но надеюсь, что есть какой-то другой способ.

Автор: jonie 16.8.2014, 19:27
ставьте на машину Remote Debugger и подключайтесь к нему.
http://msdn.microsoft.com/en-us/library/y7f5zaaa.aspx
тут подробнее.


Автор: mihryak 18.8.2014, 12:08
Для работы с дебаггером будет полезным первой строчкой писать http://msdn.microsoft.com/ru-ru/library/system.diagnostics.debugger.break%28v=vs.110%29.aspx.
Но на момей памяти удалённый дебаг - не такая простая штука, он требует, чтобы сам процесс и VS работали под одним и тем же пользователем (для локальных требуется совпадение имени). Возможно, что-то уже и изменилось, но когда-то было именно так.

Я бы повесил обработчик на AppDomain.UnhandledException, пишущий исключения в лог, если используются потоки - то и ThreadException тоже. В простых случаях даже просто весь main в try-catch завернуть с выводом исключения в файл может помочь.

Если эти штуки не помогут (пустые логи), значит дело в отсутствующем или битом .Net.

Автор: V0fka 18.8.2014, 14:50
jonie, mihryak, большое спасибо за ответы, я в ближайшее время постараюсь воспользоваться вашими советами и по результату отпишу!

Автор: V0fka 9.9.2014, 17:40
Наконец-то добрался до этого!

jonie, из вашей ссылки я попал http://msdn.microsoft.com/ru-ru/library/8x6by8d2.aspx. Сделал все по инструкции, жму отладку. В результате выдается такое сообщение:

user posted image

При этом на удаленном компе процесс запускается и висит в диспетчере задач.

mihryak, попробовал Debugger.Break, в итоге программа на удаленном ПК отваливается, показывая следующее сообщение:

user posted image

Но это меня натолкнуло на идею сделать в первой строке MessageBox.Show() и подключиться к процессу smile .
Цитата
Я бы повесил обработчик на AppDomain.UnhandledException, пишущий исключения в лог, если используются потоки - то и ThreadException тоже. В простых случаях даже просто весь main в try-catch завернуть с выводом исключения в файл может помочь.

За этот совет тоже спасибо, возьму на вооружение!

В принципе проблема решена, но если бы получилось без вставки/удаления дополнительной строки с выводом - вообще было бы супер! smile

jonie, mihryak, большое спасибо за помощь!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)