it-roy-ru.com

Системная ошибка 5 Доступ запрещен при запуске службы .NET

Когда я пытаюсь запустить службу, созданную в Visual Studio, я получаю следующую ошибку:

System error 5 has occurred.

Access is denied.

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

49
Daniel O

Чтобы заставить его работать, мне нужно было добавить разрешения в папку output bin\debug для моего сервисного проекта.

У учетной записи локальной службы не было разрешений на выходной файл .exe, и именно поэтому произошла ошибка.

49
Daniel O

Была такая же проблема. 

Исправлено при запуске службы в разделе «Учетная запись локальной системы»

enter image description here

17
Alexander G

В моем случае решение было даже таким простым: запустить командную строку как администратор .

12
hfrmobile

Я вижу, вы исправили проблему; но на самом деле, вы все равно не должны запускать службу из папки bin проекта - файлы должны быть помещены где-то независимо от проекта и профиля (например, в программные файлы). В целях отладки (когда она будет будет в папке bin), вы можете определить, является ли она службой в Main(), и, если она запускается в интерактивном режиме, просто запустите код службы напрямую, а не как обычный запуск службы настроить.

Вы можете обнаружить это, добавив аргумент командной строки, или вы можете try check Environment.UserInteractive.

10
Marc Gravell

Учетная запись Local Services, кажется, не имеет привилегий для управления службой. Поэтому в свойстве LogOn службы измените тип учетной записи на Local System и разрешите службе взаимодействовать с рабочим столом.

Также убедитесь, что вы устанавливаете сервис, используя instalutil, от имени администратора.

Наконец, когда вы хотите запустить службу из командной строки с помощью команды «net start [service name]», вы должны запустить команду Prompt от имени администратора.

2
ihayet

У меня была такая же проблема, потому что мой проект и его исходный код находились в папке, в которой была включена шифрованная файловая система NTFS ( EFS ). Это вызвано тем, что скомпилированные сборки также были зашифрованы, а у пользователя, работающего с моей службой, не было разрешений на их расшифровку. Удаление EFS было простым решением для этого. Это можно сделать из командной строки, используя CIPHER.EXE, который является инструментом Windows.

1
kjellander

Учетная запись пользователя с правами администратора будет запрашивать «Вы уверены?» В ситуациях, когда учетная запись администратора не запрашивается. У меня была эта проблема с net stop netprofm.

Для удаления подсказки сделайте это.

Панель управления, учетные записи пользователей, изменить настройки контроля учетных записей, никогда не уведомлять

Похоже, что это обеспечивает учетную запись пользователя с правами администратора так же, как учетная запись администратора.

0
Richard Roloff

У меня была такая же проблема, когда я одновременно перенес сервис с vs05 на vs2010, с фреймворка 2.0 на фреймворк 4.0. Я получил доступ отказано. Как только вернулись к фреймворку 2.0, он снова заработал. Проблема?% ¤ #% &% & заключалась в том, что строка инициализации для службы была неправильной (?!). Строка ожидаемых кавычек в начале и в конце!

До .... путь + имя службы ""/параметр = 1 'это работало с фреймворком 2.0

После .... "путь + имя службы" "/ параметр = 1"

Отказ в доступе не имеет ничего общего с проблемой. Почему бы не "Путь не найден" или "Отсутствует параметр"

0
Enrique

Просто столкнулся с этой проблемой после того, как я запустил 'sc config', чтобы изменить binPath службы.

Единственное исправление, которое работало для меня, состояло в том, чтобы 'sc удалить' сервис и установить снова.

После этого все заработало отлично.

0
Norman Bentley

Запустите его из планировщика заданий с самыми высокими привилегиями, и он будет работать.

0
Matt Averill