Каков наилучший способ отладки служебной программы Windows в Visual Studio 2008
-
21-09-2019 - |
Вопрос
Я использую анализатор журналов Microsoft в службе Windows.Программа работает на обычной веб-странице, но когда я помещаю код в службу Windows, он не работает.Я устанавливаю точки останова в службе Windows, но когда я запускаю код, программа не останавливается на точке останова.Итак, в процессе устранения неполадок я сузил проблему до программного обеспечения для анализа журналов и Linq.Таким образом, либо Linq, либо программное обеспечение для анализа журналов создает проблему.Ребята, у вас есть какие-нибудь идеи?
Решение
В прошлом я делал это многими способами, в зависимости от того, как выполняется программа.Я думаю, что самый простой способ выполняется с помощью директивы препроцессора if #DEBUG вокруг отладчика.Запустите () таким образом, когда вы создадите проект, оптимизировавший отладчик.Вызов Launch() не будет скомпилирован в сборку.
Один из способов, которым мы также выполнили эту задачу, - это с помощью System.Windows.Формы.Ящик для сообщений.Показать ("прикрепить"), который позволял нам вручную подключаться к отладчику всякий раз, когда отображалось диалоговое окно "прикрепить".
Последний способ, который я не предпочитаю, - это изменить поведение вашего сервиса на основе переданных параметров командной строки.В основном предпочитаю НЕ запускать службы с помощью ServiceBase.Запускайте всякий раз, когда был запущен определенный параметр, но вызывайте класс, который инкапсулирует поведение / основную функцию службы.
Другие советы
Вам необходимо подключить свой отладчик непосредственно к службам Windows.Это может помочь вам: http://msdn.microsoft.com/en-us/library/7a50syb3%28VS.80%29.aspx.
Вы хотите отладить метод OnStart?Если это так, вы можете использовать System.Diagnostics.Debugger.Launch()
или System.Diagnostics.Debugger.Break()
метод, позволяющий получить возможность подключить отладчик во время выполнения метода on start, в противном случае вы всегда опаздываете с подключением отладчика.
Я думаю, что предложение fat cat о подключении вашего отладчика к процессу обслуживания звучит правильно.Если это все еще не работает, попробуйте использовать Отладка.Строка записи и Отладочный просмотр.