Служба не может быть запущена - PullRequest
0 голосов
/ 03 декабря 2009

Я разработал простой сервис Windows в C # согласно этой статье.

http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx

Мне впервые удалось запустить службу и остановить ее. Во время следующих попыток я не смог запустить службу. Я получил следующую информацию.

Сервис MyNewService на локальном Компьютер запустился, а затем остановился. Некоторые службы останавливаются автоматически, если у них нет работы, например, журналы производительности и оповещения сервис.

Пожалуйста, помогите.

Ответы [ 5 ]

1 голос
/ 03 декабря 2009

Я выделил здесь метод, который мы используем для отладки наших служб Windows. Может быть, это поможет вам отследить ошибку. По сути, это звучит как ошибка при попытке выполнить метод OnStart.

1 голос
/ 03 декабря 2009

По сути это означает, что основной поток вашего сервиса по какой-то причине потерпел крах. Чаще всего я видел доступ файловой системы к собственным файлам журналов.

Иногда вы можете найти причину в средстве просмотра событий, но, к сожалению, большую часть времени пользователь, у которого вы запускаете службу, фактически не имеет доступа к журналу, это ошибка. Если вы находитесь в среде разработчика, просто сделать так, чтобы временно предоставить службе учетную запись администратора, во-первых, потому что она сообщит вам, вызван ли сбой из-за отсутствия доступа (потому что это будет работать), а во-вторых если это не так, это позволит ему писать в средство просмотра событий. Убедитесь, что вы получили административный доступ к f, как только вы это исправите, потому что это может быть очень опасно.

0 голосов
/ 03 декабря 2009

Похоже, ваш основной поток по какой-то причине умирает. Поместите вызов System.Diagnostics.Debugger.Break() в код запуска вашей службы, например, в главную точку входа, конструктор службы или метод OnStart(). Когда вы запускаете службу из MMC Services, вам будет предложено войти в сеанс отладки. В Visual Studio откройте диалоговое окно «Исключения» (из меню «Отладка») и установите флажки в столбце «Брошенный». Затем выполните отладку, чтобы найти проблему.

0 голосов
/ 03 декабря 2009

Если служба находится на вашем компьютере разработки, вы должны иметь возможность подключить к ней отладчик Visual Studio при запуске, чтобы вы могли определить, не вызывает ли это какой-либо сбой. Это включает в себя немного редактирования реестра, как описано здесь: http://blogs.msdn.com/greggm/archive/2005/02/21/377663.aspx

0 голосов
/ 03 декабря 2009

Вы смотрели в журнале событий? Обычно вы можете получить более подробную информацию об ошибке службы. Кроме того, вы записываете в журнал с вашим сервисом? Это еще один способ понять, что происходит не так.

Вы можете попасть в журнал событий, щелкнув правой кнопкой мыши Компьютер и выбрав «Управление». В разделе «Системные инструменты» найдите «Просмотр событий» -> «Приложение». Это на Windows XP, но другие ОС Windows должны быть похожими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...