Ошибка 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 ]

108 голосов
/ 06 марта 2011

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

Первая ошибка Error 5: Access Denied была устранена путем предоставления разрешений для выходного каталога учетной записи NETWORK SERVICE.

Вторая ошибка Started and then stopped, похоже, является общим сообщением, когда что-то не работает в службе. Проверьте средство просмотра событий (в частности, «Журналы Windows> Приложение») на наличие сообщения об ошибке.

В моем случае это был неверный параметр конфигурации службы в app.config.

23 голосов
/ 01 августа 2012

Компьютер -> Управление -> Сервис -> Свойства [вашего сервиса].Затем вкладка с информацией об учетной записи.Поиграйте с этими настройками, например, запустите службу с учетной записью администратора или около того.

Это сделало это для меня.

РЕДАКТИРОВАТЬ: проблема также в том, что большинство служб запускаются как1005 * или LOCAL SYSTEM аккаунтов.Теперь, когда вы запустите C:/my-admin-dir/service.exe с этими учетными записями, но им не разрешено ничего выполнять в этом каталоге, вы получите error 5.Поэтому найдите исполняемый файл службы, отметьте каталог -> Свойства -> Безопасность и убедитесь, что учетная запись, с которой запускается служба, находится в списке пользователей, которым разрешено иметь полный контроль над каталогом.

17 голосов
/ 12 июня 2013

Это сработало для меня.

  1. Щелкните правой кнопкой мыши папку верхнего уровня, содержащую исполняемый файл службы.Перейдите в Свойства
  2. Перейдите на вкладку «Безопасность»
  3. Нажмите «РЕДАКТИРОВАТЬ»
  4. Нажмите «ДОБАВИТЬ»
  5. Введите имя «СИСТЕМА», нажмите ОК
  6. Выделите SYSTEM пользователя и установите флажок ALLOW рядом с «Полный контроль»
  7. Дважды нажмите OK
12 голосов
/ 04 июня 2014

Я также получил ту же ошибку, она разрешена Щелкните правой кнопкой мыши Сервис> Свойства> Вход в систему> войдите как: учетная запись локальной системы.

8 голосов
/ 07 января 2016

Убедитесь, что Path to executable указывает на фактический исполняемый файл (Сервис правой кнопкой мыши -> Свойства -> вкладка Общие).С помощью powershell (и sc.exe) вы можете установить службу, не указывая на исполняемый файл ... хм.

5 голосов
/ 30 мая 2018

Я получил решение:

1. Go to local service window(where all services found)
2. Just right click on your service name: 
3. click on "properties" 
4. go to "log on" tab
5. select "local system account"
6. click "ok"

теперь вы можете попробовать запустить службу.

4 голосов
/ 22 апреля 2017

В моем случае следующее не проверялось.

enter image description here

3 голосов
/ 28 октября 2017

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

откройте свойства служб, выберите вкладку log on и установите флажок, чтобы служба могла взаимодействовать с рабочим столом, click allow service to interact with desktop

3 голосов
/ 03 октября 2011

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

public partial class Service1 : ServiceBase
{
    ServiceHost host;
    Thread hostThread;
    public Service1()
    {
        InitializeComponent();
         hostThread= new Thread(new ThreadStart(StartHosting));

    }

    protected override void OnStart(string[] args)
    {
        hostThread.Start();
    }

    protected void StartHosting()
    {
        host = new ServiceHost(typeof(WCFAuth.Service.AuthService));
        host.Open();
    }

    protected override void OnStop()
    {
        if (host != null)
            host.Close();
    }
}
2 голосов
/ 27 мая 2016

У меня была служба Windows, размещенная с использованием OWIN и TopShelf.Я не смог начать это.Та же ошибка - «Отказано в доступе 5»

Я закончил тем, что отдал все права на мой бин / Отладка.

Проблема все еще не решена.

Итак, у меня былзагляните в журналы событий, и выяснилось, что Microsoft.Owin.Host.HttpListener не был включен в библиотеку классов, содержащую класс запуска OWIN.

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

...