Служба Windows не будет выполнять код после установки и запуска - PullRequest
2 голосов
/ 08 февраля 2010

Я создал службу Windows в C # с помощью Visual Studio 2008. Я собрал ее, перешел в папку, в которой она хранится с помощью командной строки Visual Studio, и использовал команду: installutil MyWindowsService.exe.Устанавливается просто отлично, и я вижу это в диспетчере сервисов.Тем не менее, когда я иду, чтобы запустить его, он не будет выполнять ни один из моего кода.Код должен отправить электронное письмо на мой адрес Gmail, подтверждающее, что оно действительно работает.Я протестировал этот код в консольном приложении, и он прекрасно работает.Служба не выполнит его, однако.

Есть идеи, что мне следует попробовать?

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 08 февраля 2010

Проверьте Event Viewer на наличие ошибок. Если это не приводит к проблеме, добавьте Debugger.Break() в свой метод OnStart(), чтобы вы могли подключить отладчик, как только служба запустится.

2 голосов
/ 08 февраля 2010

Под какими учетными записями установлена ​​служба? Если это локальная служба, это может объяснить вашу проблему, поскольку я не верю, что локальной службе разрешен доступ к сети. Если вам требуется доступ к сети, вам необходимо использовать сетевую службу для пользователя службы, но имейте в виду, что при этом вы отказываетесь от определенных прав администратора для этой службы в локальном окне.

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

Если вам нужно и то, и другое, вам нужно будет запустить службу как локально созданный пользователь, где вы сможете сами контролировать права.

...