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

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

Внутренний класс может быть доступен для любого класса, который содержит текущий проект. Открытый класс доступен для любого класса, даже если это другой проект.

выберите, это зависит от вашей цели.

50
задан abatishchev 9 November 2012 в 23:05
поделиться

3 ответа

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

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

49
ответ дан Daniel O 7 November 2019 в 10:54
поделиться

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

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

10
ответ дан Marc Gravell 7 November 2019 в 10:54
поделиться

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

1
ответ дан 7 November 2019 в 10:54
поделиться