Служба Windows не может получить доступ к сетевому ресурсу

У меня есть служба Windows, работающая на моей локальной машине. Он настроен на запуск под управлением NT AUTHORITY\NETWORK SERVICE. Программа получает доступ к сетевому совместно используемому диску на компьютере в той же подсети. В этом общем каталоге установлен параметр "Все в полный доступ".

Я получаю False на File.Exists, но файл существует. Я уверен, что это проблема с разрешением. Я что-то забываю? Обратите внимание: компьютер с общим диском не находится в домене.

Ответ 1

Решение найдено здесь: https://serverfault.com/questions/177139/windows-service-cant-access-network-share

Тот факт, что машина с общим диском находится не в домене, - это ваша основная проблема. Чтобы заставить это работать, вам придется настроить службу Windows для запуска как конкретного пользователя, а затем вам придется создать идентичного пользователя в удаленной системе с тем же паролем. Тогда это может сработать.

Проблема связана с тем, что для входа в систему не в домене вам необходимо войти в эту машину, используя учетную запись, существующую на этом компьютере. Счет машины для чего-то еще определенно не будет существовать на этой локальной машине. Создав идентичного пользователя с идентичным паролем, вы сможете заставить его работать. "

-sysadmin1138

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

Ответ 2

Брайан Т был прав. Но я хотел бы что-то добавить. У нас была эта проблема, даже несмотря на то, что служба работала на одном домене DOMAIN\User. Наш сервис пытался записать файл в общую папку/диск, и он был настроен в файле config.xml следующим образом: I:/путь/к//файл/к/записи.

Но когда мы изменили конфигурацию на использование IP-адреса сети вместо буквы диска, нам удалось исправить эту проблему. Однако синтаксис немного изменился:

\\ xxx.xxx.xx.xx\путь\к\папке\\\к записи

Надеюсь, это поможет любому, кто еще не решил проблему.

Ответ 3

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