2013-05-16 2 views
2

Мы переносим решение Visual Studio 2010 в Visual Studio 2012. Как обычно, закон Мерфи выращивает уродливую голову.Не удается отладить службу Windows в Visual Studio 2012

То, что я пытаюсь сделать, относительно просто, и я делал это много раз в прошлом - я просто хочу подключиться к запущенному процессу службы Windows и вступить в его код.

FWIW с другими проектами этого решения Я могу вставить и отладить код, как ожидалось, - это просто эта служба Windows, которая дает нам проблемы.

Мы уже verfiied очевидных вещей, которые могут привести к этому помешать ...

1: Мы уже обеспечили, что символы .pdb отладок включены вместе с исполняемой службой и библиотеки

2: Мы выполняем отладочную сборку службы.

Я предполагаю, что это просто глупо установка в Visual Studio 2012 где-то, что является причиной этого ... Или это, или я пропускаю что-то простое и просто нужна вторая пара глаз ...

+0

Вы пробовали Debugger.Launch() внутри вашего окна, а затем устанавливаете и запускаете. По мере того как он ударит по строке, он запустит отладчик для вас. – HatSoft

+0

Вы получаете сообщение об ошибке? не может установить контрольные точки? не можете прикрепить? – canhazbits

+0

Вы используете службу локально или на другой машине? – AceJordin

ответ

1

самым простым способом отладки службы является вставка Assert(0) в сборку отладки где-то в начале кода Running(). Утверждение появится во время работы службы, что позволит вам присоединить к нему отладчик по вашему выбору. Затем вы можете делать все, что хотите (например, установить точки останова, изменить значения в памяти и т. Д.).

Если Visual Studio 2012 по-прежнему не будет прикрепляться к вашей службе подтверждения, то что-то серьезно не работает при установке или настройке. Если он прикрепляется, но не позволит вам ничего увидеть, вам, вероятно, потребуется включить отладку «native code», когда вы подключаетесь.

1

Следующая работал для меня:

  1. Создание службы окон в режиме отладки;
  2. Публикуйте его и установите на своей машине разработки;
  3. Запустите службу с консоли управления службами;
  4. Приложить обрабатывать внутри Visual Studio 2012

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

Обратите внимание: на шаге 4 вам может потребоваться выбрать «Показать процессы от всех пользователей», чтобы ваша служба была видимой, чтобы иметь возможность подключаться к ней, потому что она, скорее всего, будет работать под учетной записью SYSTEM.

Надеюсь, это поможет вам в Chase.

Смежные вопросы