2017-01-04 3 views
1

С помощью этого кода:Почему я получаю UnauthorizedAccessException при чтении файлов из сетевого ресурса?

DirectoryInfo info = new DirectoryInfo("\\s01\sharedfolder\folder"); 
FileInfo[] files = info.GetFiles().OrderBy(p => p.CreationTime).ToArray(); 

Я получаю System.UnauthorizedAccessException:

доступ к пути '\ s01sharedfolder \ папку' отрицается.

System.UnauthorizedAccessException: Доступ к пути '\ s01 \ sharedfolder \ folder' запрещен.

В 's01' Я дал Everyone полный контроль на sharedfolder. Я также установил владельца этой общей папки в everyone.

Идентификатор пула приложений приложения .net установлен в LocalSystem, и я также попытался использовать локальный администратор в качестве идентификатора.

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

EDIT: Я также пытался создать символическую ссылку, но это дало такое же исключение

+2

«Все» - это вводящее в заблуждение разрешение в окнах. У вашего приложения нет доступа к этой конкретной папке. – Prajwal

+0

Что еще я могу попробовать? Теперь я запускаю свое приложение под LocalSystem – Martijn

+0

Проверьте это. https://blog.varonis.com/the-difference-between-everyone-and-authenticated-users/ – Prajwal

ответ

1

LocalSystem будет действителен только на локальном компьютере. Если этот ресурс находится на другом компьютере, вы получите это исключение.

Возможно, стоит создать специальную учетную запись для вашего сайта для запуска в (пул IIS) и предоставить необходимые разрешения для ресурсов в сети (ala ваш общий ресурс и база данных при использовании Windows Authentication) и локально на ваш сайт (локальная файловая система ala).

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

Смежные вопросы