Отладка службы Windows - PullRequest
       54

Отладка службы Windows

41 голосов
/ 13 апреля 2010

Сценарий

У меня есть служба Windows, написанная на C #. Я прочитал все темы Google о том, как отладить его, но я до сих пор не могу заставить его работать. Я запустил «PathTo.NetFramework \ InstallUtil.exe C: \ MyService.exe». Он сказал, что установка прошла успешно, однако, когда я запускаю «Services.msc», служба вообще не отображается нигде. Если я захожу в диспетчер задач, есть процесс под названием «MyService.vshost.exe». Уверен, что это не так, потому что это услуга, а не процесс.

Может ли кто-нибудь объяснить мне?

Должен ли я видеть службу при запуске Services.msc? (Учитывая, что все это делается на локальной машине, без серверов ВСЕ.

Другое

Я использую VS2008.

EDIT:

Все это делается на моей локальной машине, у меня нет серверов или доступа к ним. Кроме того, я даже не знаю, что делает служба, я хочу отладить ее, чтобы просмотреть код и посмотреть, как все это работает (код внутри службы, а не сама служба) для любого из вас, кто может Предлагаю посмотреть шаблон).

РЕДАКТИРОВАТЬ 2:

Никто из них не работает! Каждый раз, когда я что-то пробую, я получаю сообщение о необходимости использовать NET START или установить службу.

РЕДАКТИРОВАТЬ 3:

Я использую VS2008.

Я набрал это: C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ InstallUtil.exe C: \ dev \ Restarter \ bin \ Release \ Restarter.exe

Я получил это: Утилита установки Microsoft (R) .NET Framework Версия 2.0.50727.3053 Авторские права (c) Корпорация Microsoft. Все права защищены.

Запуск транзакционной установки.

Начало фазы установки установки. Смотрите содержимое файла журнала для C: \ dev \ Restarter \ bin \ Выпуск сборки \ Restarter.exe. Файл находится по адресу C: \ dev \ Restarter \ bin \ Release \ EDT.Restar. ter.InstallLog. Установка сборки «C: \ dev \ Restarter \ bin \ Release \ Restarter.exe». Затрагиваемые параметры: logtoconsole = assemblypath = C: \ dev \ Restarter \ bin \ Release \ Restarter.exe logfile = C: \ dev \ Restarter \ bin \ Release \ Restarter.InstallLog

Фаза установки успешно завершена, и фаза фиксации начинается. Смотрите содержимое файла журнала для C: \ dev \ Restarter \ bin \ Выпуск сборки \ Restarter.exe. Файл находится по адресу C: \ dev \ Restarter \ bin \ Release \ Restar ter.InstallLog. Фиксация сборки «C: \ dev \ Restarter \ bin \ Release \ Restarter.exe». Затрагиваемые параметры: logtoconsole = assemblypath = C: \ dev \ Restarter \ bin \ Release \ Restarter.exe logfile = C: \ dev \ Restarter \ bin \ Release \ Restarter.InstallLog

Фаза фиксации успешно завершена.

Транзакционная установка завершена.

C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC>

Я тогда пошел в RUN -> Services.msc Я ничего не вижу там.

В диспетчере задач есть процесс, который называется Restarter.vshost.exe.

Вот и все.

Я только хотел установить и отладить его. Я знаю, что это работает (как это работает и не падает). Но код был написан другом, и я хочу понять базовый код, пройдя его в режиме отладки.

Ответы [ 11 ]

0 голосов
/ 13 апреля 2010

Если ваш бизнес-уровень отделен от службы Windows, вы можете протестировать все свои бизнес-функции за пределами запуска службы Windows.

Чтобы протестировать службу Windows, мне нравится создавать тестовый проект, который является консольным приложением, и я запускаю новый поток, который запускает мою службу.

System.Threading.Thread sftpThread = new System.Threading.Thread((ThreadStart)service1);
service1.Start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...