2010-04-15 2 views
2

Я создал службу WCF и разместил ее с помощью хоста Windows Services. Для установки проекта я создал проект установки (как описано here). В учебнике говорится, что в ProjectInstaller.cs указывается serviceProcessInstaller1Учетная запись свойство должно быть Сетевое обслуживание. При использовании этого параметра служба не запускалась на сервере. Когда я попытался запустить процесс вручную, он сразу же вернулся к остановленному состоянию.
После того, как я изменил счет на LocalSystem сервис работает правильно. Мои вопросы:Проблема с разрешениями службы WCF Windows

  1. Любые идеи, почему он не будет работать с учетной записью Network Service?
  2. Каковы последствия для безопасности использования сервера с учетной записью LocalSystem? Этот сервер используется локально в интрасети в качестве сервера отчетов для других серверов.
+0

Его проблема будет связана с правами пользователя. Я не уверен, что это правда, но я уверен, что NS имеет меньше прав, чем LS. – Will

+1

Правда, но в соответствии с учебным пособием должно быть возможно заставить его работать с NS. – Elad

ответ

0
  1. Network Service не имеет собственную priviligies для запуска WCF хоста, используя именованные каналы (см http://weblogs.thinktecture.com/cweyer/2007/12/dealing-with-os-privilege-issues-in-wcf-named-pipes-scenarios.html).
  2. См. http://www.windowsitpro.com/article/services/understanding-the-local-service-and-network-service-accounts.aspx для описания различий между этими учетными записями. LocalSystem - это локальная учетная запись администратора, которая может вызвать много проблем при использовании злоумышленником. У учетной записи Network Service гораздо меньше доступа и из-за этого лучше использовать.
Смежные вопросы