Ошибка 5: доступ запрещен при запуске службы Windows - PullRequest
89 голосов
/ 24 ноября 2010

Я получаю эту ошибку, когда пытаюсь запустить службу Windows, созданную на C #:

alt text

Мой код:

private ServiceHost host = null;

public RightAccessHost()
{
    InitializeComponent();
}

protected override void OnStart(string[] args)
{
    host = new ServiceHost(typeof(RightAccessWcf));
    host.Open();
}

protected override void OnStop()
{
    if (host != null)
        host.Close();
    host = null;
}

Обновление # 1

Я решил вышеуказанную проблему, предоставив разрешения учетной записи СЕТЕВОЙ СЕРВИС , но теперь у меня возникла другая проблема:

alt text

Обновление # 2

Служба не может быть запущена.System.InvalidOperationException: служба 'RightAccessManagementWcf.RightAccessWcf' имеет нулевые конечные точки приложения (не инфраструктуры).Это может быть связано с тем, что для вашего приложения не найден файл конфигурации, или из-за невозможности найти элемент службы, соответствующий имени службы, в файле конфигурации или из-за отсутствия конечных точек в элементе службы.в System.ServiceModel.Description.DispatcherBuilder.EnsureThereAreNonMexEndpoints (описание ServiceDescription) в System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost (описание ServiceDescription, ServiceHostBase.ostlost.OserviceServiceServiceSoServiceSodeServiceSodeServiceSerInSerServiceSerInSerServiceSerInSerServiceSerInSerServiceSserviceSerServiceSserviceSerServiceSerServiceSerServiceSerSerServiceSerServiceSerServiceSerServiceSerServiceSerSserviceSerSerSergServiceServiceSerSserviceSerSservice)Тайм-аут TimeSpan) в System.ServiceModel.Channels.CommunicationObject.Open (Тайм-аут TimeSpan) в RightAccessHosting.RightAccessHost.OnStart (String [] args) в C: \ Users ....

Ответы [ 30 ]

2 голосов
/ 29 ноября 2013

Для меня - папка, из которой должен был запускаться сервис, и файлы в нем, которые были зашифрованы с помощью опции Windows «Шифрование». Удаление этого и - вуаля!

1 голос
/ 10 сентября 2018

Я получил эту ошибку, потому что неправильно прочитал принятый ответ отсюда: Создать службу Windows из исполняемого файла .

sc.exe create <new_service_name> binPath= "<path_to_the_service_executable>"

Для <path_to_service_executable> я использовал путь к папке исполняемого файла, например, C:\Folder.

Это должен быть путь к исполняемому файлу , например C:\Folder\Executable.exe.

Надеюсь, это поможет тому, кто совершил ту же глупую ошибку, что и я.

1 голос
/ 24 ноября 2010

Ваш код может выполняться в контексте безопасности пользователя, которому запрещено запускать службу.

Поскольку вы используете WCF, я предполагаю, что вы находитесь в контексте NETWORK SERVICE.

см .: http://support.microsoft.com/kb/256299

1 голос
/ 08 марта 2018

В моем случае мне пришлось добавить «Authenticated Users» в список «Group or User Names» в папке, где был установлен исполняемый файл.

1 голос
/ 09 ноября 2016

Используйте учетную запись LocalSystem вместо учетной записи LocalService в Service Installer.

Это можно сделать, выполнив следующие изменения в режиме конструктора установщика службы:
Свойства установщика служебного процесса -> Установить учетную запись в LocalSystem.

или внесите следующие изменения в файл designer.cs вашего установщика службы:

this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
1 голос
/ 14 ноября 2017

Щелкните правой кнопкой мыши service в service.msc и выберите property.

Вы увидите путь к папке под Path to executable, например C: \ Users \ Me \ Desktop \ project \ Tor \ Tor \ tor.exe

Перейдите в C: \ Users \ Me \ Desktop \ project \ Tor и щелкните правой кнопкой мыши Tor.

Выберите property, security, edit, а затем add. В текстовое поле введите LOCAL SERVICE, нажмите ОК, а затем установите флажок FULL CONTROL

Снова нажмите add, затем введите NETWORK SERVICE, нажмите ok, установите флажок FULL CONTROL

Затем нажмите ОК (внизу)

1 голос
/ 02 ноября 2018

Одна из причин этой ошибки - недостаточные разрешения (Authenticated Users) в вашей локальной папке.Чтобы дать разрешение для «Аутентифицированных пользователей» Откройте вкладку «Безопасность» в свойствах вашей папки, «Редактировать и добавить группу« Аутентифицированные пользователи »и применить изменения».

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

0 голосов
/ 08 июля 2015

В случае, если системе не хватает свободного места на локальном диске.

0 голосов
/ 29 августа 2018

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

Это было все.

0 голосов
/ 19 декабря 2012

Для ошибки 5 я сделал противоположное решению выше. «Первая ошибка 5: ошибка« Отказано в доступе »была устранена путем предоставления разрешений выходному каталогу учетной записи NETWORK SERVICE.»

Я изменил свою учетную запись на локальную, а не на учетную запись сетевого сервиса, и, поскольку я вошел в систему как администратор, это сработало

...