2013-05-24 2 views
6

У меня возникают проблемы с отладкой в ​​режиме реального времени службы Windows на удаленной машине. Этот компьютер находится за брандмауэром, доступным только через удаленный рабочий стол. Я включаю в себя заявления Debug.WriteLine через мой код вместо Console.WriteLine. Не так давно я наткнулся на приложение из Microsoft с именем Debug View. Он был полезен при отладке форм и приложений WPF, но он не будет отображать операторы Debug.WriteLine для работающего сервиса. Я был бы очень доволен, если бы мог видеть эти отладочные заявления. Есть ли способ сделать это?Использование режима отладки с помощью службы Windows

Обратите внимание: проект скомпилирован в режиме отладки, так как я вижу операторы отладки в режиме отладки во время установки службы.

+0

Вы использовали 'Debugger.Launch()' в службе windows – Saravanan

+0

Вы рассмотрели использование фреймворка ведения журнала, такого как log4net – aquaraga

+0

Нет, я создал регистратор, который записывает в файлы. Мне нужно будет просмотреть log4net. – JMooney

ответ

9

Запустите Debug View как Administrator, выберите меню Capture, затем убедитесь, что установлен Capture Global Win32. Это приведет к выходу Debug.WriteLine из вашего сервиса (и любой другой услуги). Вы можете использовать фильтр, чтобы предотвратить отображение Debug View вывода, который вам неинтересен. Подумайте о том, чтобы префикс сообщения отладки службы с вашим именем службы, чтобы вы могли их фильтровать.