Каков наилучший способ отладки служебной программы Windows в Visual Studio 2008

StackOverflow https://stackoverflow.com/questions/1563123

Вопрос

Я использую анализатор журналов 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 о подключении вашего отладчика к процессу обслуживания звучит правильно.Если это все еще не работает, попробуйте использовать Отладка.Строка записи и Отладочный просмотр.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top