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

0 голосов
/ 26 марта 2014

Если вы получаете эту ошибку на серверном компьютере, попробуйте предоставить доступ к папке, в которой вы получили реальный exe-сервис Windows.Вы должны перейти на вкладку безопасности и выбрать локальную службу в качестве пользователя и предоставить полный доступ.Вы должны сделать то же самое для exe.

0 голосов
/ 30 апреля 2014

Я следил за sppsvc.exe с помощью монитора процессов и обнаружил, что он пытается записать в ключ HKEY_LOCAL_MACHINE \ SYSTEM \ WPA.После предоставления разрешений NETWORK SERVICE на этот ключ я смог запустить службу, и Windows неожиданно обнаружила, что она снова активирована.

0 голосов
/ 08 октября 2016

В моем случае я держал проект на рабочем столе, и для доступа к рабочему столу нам нужно добавить разрешение к папке, поэтому я просто переместил папку своего проекта в каталог C: \, теперь она работает как шарм.

0 голосов
/ 24 сентября 2014

Я случайно установил свой сервис для работы, так как Local service решение было переключиться на Local System

0 голосов
/ 06 мая 2015

После нескольких часов, пытаясь понять это, мой метод «Main» каким-то образом освободился от своего кода!

ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] 
{ 
    new DMTestService()
};
ServiceBase.Run(ServicesToRun);

Другие решения, которые я нашел:

  • Обновление .NET Framework до 4.0
  • Убедитесь, что имя службы внутри InitializeComponent () соответствует свойству имени службы установки

    private void InitializeComponent()
    ...
    this.ServiceName = "DMTestService";
    
  • И хороший перезапуск сервера не помешает

Szhlopp

0 голосов
/ 11 сентября 2015

У меня была эта проблема в службе, которую я развертывал, и ни одно из других предложений по этому вопросу не сработало.В моем случае это было потому, что мой .config (xml) был недействительным.Я сделал ошибку копирования и вставки при копировании из qualif в prod.

0 голосов
/ 24 ноября 2010

Взгляните на Process Utilities > Process monitor из http://www.sysinternals.com.

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

0 голосов
/ 04 июня 2015

Откройте меню Start и выберите Run или используйте сочетание клавиш Win + R .

В диалоговом окне введите lusrmgr.msc. Когда откроется это приложение, нажмите «Пользователи» на левой панели, а затем щелкните правой кнопкой мыши Administrator на правой панели. Нажмите Properties в меню.

В диалоговом окне Administrator Properties выберите вкладку Member Of, затем нажмите кнопку Добавить ... в правом нижнем углу. В следующем диалоговом окне выберите Advanced...

Появится другое диалоговое окно. Оттуда нажмите Find Now справа. Список результатов поиска появится в нижней части диалогового окна. Выберите Network Services из этого списка и нажмите OK в каждом из открытых диалогов.

0 голосов
/ 22 июня 2019

Как показывает всплывающее сообщение об ошибке, это связано с разрешением. Так что запустите сервис под учетной записью «LocalSystem».

Чтобы сделать то же самое, щелкните правой кнопкой мыши на serviceProcessInstaller -> Properties -> Account и установите его на "LocalSystem" вместо значения по умолчанию "User". Установите сервис и вуаля.

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

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

Когда я добавил зависимости, проблема исчезла.

...