Я получаю эту ошибку, когда пытаюсь запустить службу Windows, созданную на C #:
Мой код на данный момент:
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
Я решил проблему, указанную выше, предоставив разрешения учетной записи NETWORK SERVICE, но теперь у меня возникла другая проблема:
Обновление # 2
Служба не может быть запущена. System.InvalidOperationException: служба RightAccessManagementWcf.RightAccessWcf не имеет конечных точек приложения (не связанных с инфраструктурой). Это может быть связано с тем, что для вашего приложения не найден файл конфигурации, или потому, что в файле конфигурации не может быть найден элемент службы, соответствующий имени службы, или потому, что в элементе службы не определены конечные точки. в System.ServiceModel.Description.DispatcherBuilder.EnsureThereAreNonMexEndpoints (описание ServiceDescription) в System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost (описание ServiceDescription, ServiceDescription, ServiceHostBase serviceHost (ServiceHostBase) в System.ServiceModel.ServiceHost TimeSpan timeout) в System.ServiceModel.Channels.CommunicationObject.
источник
Ответы:
Я понимаю, что этот пост старый, но нет отмеченного решения, и я просто хотел рассказать, как я решил это.
Первая
Error 5: Access Denied
ошибка была устранена путем предоставленияNETWORK SERVICE
учетной записи разрешений на выходной каталог .Вторая
Started and then stopped
ошибка кажется общим сообщением, когда что-то привело к ошибке службы. Проверьте истинное сообщение об ошибке в средстве просмотра событий (в частности, «Журналы Windows> Приложение»).В моем случае это был неправильный параметр конфигурации службы в app.config.
источник
Компьютер -> Управление -> Сервис -> свойства [вашей службы]. Затем вкладка с информацией об учетной записи. Поиграйте с этими настройками, например, запустите службу с учетной записью администратора или около того.
Это сделало это для меня.
EDIT: Что же может быть проблема заключается в том, что большинство служб работают как
LOCAL SERVICE
илиLOCAL SYSTEM
счета. Теперь, когда вы запускаетеC:/my-admin-dir/service.exe
эти учетные записи, но им не разрешено выполнять что-либо в этом каталоге, вы получитеerror 5
. Итак, найдите исполняемый файл службы, щелкните правой кнопкой мыши каталог -> Свойства -> Безопасность и убедитесь, что учетная запись, с которой запущена служба, находится в списке пользователей, которым разрешено иметь полный контроль над каталогом.источник
Это сработало для меня.
источник
У меня также была такая же ошибка, она была устранена щелчком правой кнопкой мыши по Сервису> Свойства> Вход в систему> войти в систему как: учетная запись локальной системы.
источник
Убедитесь, что
Path to executable
указывает на настоящий исполняемый файл (щелкните правой кнопкой мыши службу -> Свойства -> вкладка Общие). Через powershell (и sc.exe) вы можете установить службу, не указывая на исполняемый файл ... кхм.источник
У меня есть решение:
теперь вы можете попробовать запустить службу.
источник
Я получал эту ошибку, потому что неправильно прочитал принятый ответ отсюда: Создать службу Windows из исполняемого файла .
Для
<path_to_service_executable>
я использовал путь к папке исполняемого файла, напримерC:\Folder
.Это должен быть путь к исполняемому файлу , например
C:\Folder\Executable.exe
.источник
В моем случае следующее не проверялось.
источник
Для меня - папка, из которой должна была запускаться служба, и файлы в ней были зашифрованы с помощью опции Windows «Зашифровать». Удаление этого и - вуаля!
источник
Эта ошибка возникает, когда в вашем
OnStart
методе есть ошибка . Вы не можете открыть хост непосредственно вOnStart
методе, потому что он фактически не открывается при вызове, а вместо этого будет ждать элемента управления. Итак, вам нужно использовать поток. Это мой пример.источник
если у вас есть код ошибки отказа в доступе 5. то, вероятно, в вашем коде ваша служба пытается взаимодействовать с некоторыми файлами в системе, например, записывать в файл журнала
откройте
log on
вкладку свойств служб и установите флажок, чтобы разрешить службе взаимодействовать с рабочим столом,источник
В моем случае мне пришлось добавить «Прошедших проверку пользователей» в список «Имена групп или пользователей» в папке, где был установлен исполняемый файл.
источник
Одна из причин этой ошибки - недостаточные разрешения (аутентифицированные пользователи) в вашей локальной папке. Чтобы предоставить разрешение для «Прошедших проверку пользователей». Откройте вкладку безопасности в свойствах вашей папки, отредактируйте и добавьте группу «Прошедшие проверку» и примените изменения.
Как только это было сделано, я смог запускать службы даже через учетную запись сетевой службы (до этого я мог запускать только с локальной системной учетной записью).
источник
У меня была служба Windows, размещенная с использованием OWIN и TopShelf. Я не смог его запустить. Та же ошибка - «Доступ запрещен 5»
Я закончил тем, что отдал всю химическую завивку своему бункеру / отладке.
Проблема все еще не решена.
Итак, я просмотрел журналы событий, и оказалось, что
Microsoft.Owin.Host.HttpListener
он не был включен в библиотеку классов, содержащую стартовый класс OWIN.Поэтому, пожалуйста, не забудьте проверить журнал событий, чтобы определить основную причину, прежде чем начинать перманент и т. Д.
источник
Ваш код может выполняться в контексте безопасности пользователя, которому не разрешено запускать службу.
Поскольку вы используете WCF, я предполагаю, что вы находитесь в контексте NETWORK SERVICE.
см .: http://support.microsoft.com/kb/256299
источник
Используйте учетную запись LocalSystem вместо учетной записи LocalService в установщике службы.
Вы можете сделать это, выполнив следующие изменения в представлении вашего установщика службы:
Свойства установщика процесса службы -> Установить для учетной записи значение LocalSystem.
или, выполнив следующие изменения в файле designer.cs установщика службы:
источник
Щелкните правой кнопкой мыши
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
Затем нажмите ОК (внизу)
источник
Посмотрите
Process Utilities > Process monitor
из http://www.sysinternals.com .Это инструмент, который позволяет вам отслеживать, что делает процесс. Если вы отслеживаете этот процесс обслуживания, вы должны увидеть где-то отказано в доступе и на каком ресурсе отказано в доступе.
источник
Для ошибки 5 я сделал противоположное решению выше. «Первая ошибка 5: отказано в доступе была устранена путем предоставления разрешений на выходной каталог учетной записи NETWORK SERVICE».
Я изменил свою на локальную учетную запись вместо учетной записи сетевой службы, и поскольку я вошел в систему как администратор, это сработало
источник
Если вы получаете эту ошибку на сервере, попробуйте предоставить доступ к папке, в которой вы получили настоящий исполняемый файл службы Windows. Вы должны перейти на вкладку безопасности и выбрать локальную службу в качестве пользователя и предоставить полный доступ. Вы должны сделать то же самое и для exe.
источник
Я контролировал sppsvc.exe с помощью монитора процессов и обнаружил, что он пытался записать в ключ HKEY_LOCAL_MACHINE \ SYSTEM \ WPA. После предоставления разрешений NETWORK SERVICE для этого ключа я смог запустить службу, и Windows внезапно обнаружила, что она была снова активирована.
источник
Я случайно запустил свою службу, так как
Local service
решение заключалось в переключении наLocal System
источник
После того, как в течение нескольких часов я пытался понять это, мой метод "Main" каким-то образом лишился своего кода!
Другие решения, которые я нашел:
Убедитесь, что имя службы внутри InitializeComponent () соответствует свойству имени службы установщика
И хороший перезапуск сервера не повредит
Сжлопп
источник
На случай, если в системе закончится свободное место на локальном диске.
источник
Сегодня у меня возникла эта проблема в сервисе, который я разрабатывала, и ни одно из других предложений по этому вопросу не помогло. В моем случае у меня отсутствовала зависимость .dll в папке, из которой запускалась служба.
Когда я добавил зависимости, проблема исчезла.
источник
В моем случае я сохранил проект на рабочем столе, и для доступа к рабочему столу нам нужно добавить разрешение на папку, поэтому я просто переместил свою папку проекта в каталог C: \, теперь он работает как шарм.
источник
Не знаю, будет ли мой ответ понятным для многих, но я тоже столкнулся с той же проблемой, и решение было невероятно простым. Все, что мне нужно было сделать, это открыть программу, которую я использовал для запуска кода от имени администратора. (щелкните правой кнопкой мыши -> Запуск от имени администратора).
Это все.
источник
Как подсказывает всплывающее окно с ошибкой, это связано с разрешением. Так что запустите службу как учетную запись «LocalSystem».
Чтобы сделать то же самое, щелкните правой кнопкой мыши
serviceProcessInstaller -> Properties -> Account
и установите"LocalSystem"
вместо значения по умолчанию"User"
. Устанавливаем сервис и вуаля.источник
проверьте журнал событий Windows для получения подробного сообщения об ошибке. Я решил то же самое после проверки журнала событий.
источник
У меня была эта проблема в службе, которую я развертывал, и ни одно из других предложений по этому вопросу не помогло. В моем случае это произошло потому, что мой .config (xml) недействителен. Я сделал ошибку копирования и вставки при копировании из qualif в prod.
источник