Вопрос по c#, asp.net – Directory.Exists не работает для сетевого пути

24

У меня есть строка кода, проверяющая, существует ли каталог, и затем получающая список файлов в нем.

<code>System.IO.Directory.Exists(@"\\Server\Folder\");
</code>

Я работаю, когда тестирую его (запускаю из visual studio), но при развертывании веб-сайта он всегда возвращает false.

Я делаю ту же проверку для другой папки, на другом сервере (скажем, Server2), и она отлично работает.

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

Разве это не в состоянии де-ссылкиServer? David
Имеет ли учетная запись, под которой работает IIS, доступ? Matthew

Ваш Ответ

4   ответа
1

bool result = false;
try
{
    Directory.GetAccessControl(path);
    result = true;
}
catch (UnauthorizedAccessException)
{
    result = true;
}
catch
{
    result = false;
}
20

он запускается с правами вашего пользователя.

Когда вы запускаете код в IIS, он запускается с идентификатором пула приложений, который по умолчанию является встроенным пользователем «Сетевой сервис». это локальная учетная запись пользователя, которая не имеет доступа за пределами локальной машины.

Права на сетевом ресурсе являются первым уровнем, после чего проверяются права NTFS на каталог.

Вам необходимо изменить удостоверение пула приложений на пользователя домена с теми же правами, что и у вашего пользователя.

Error: User Rate Limit Exceeded Amaranth
3

я немного опоздал, но обнаружил, что существует проблема с этим методомDirectory учебный класс. Вместо этого я использовалDirectoryInfo с подражанием таким образом:

new DirectoryInfo(path).Exists

Таким образом вы избежите всей проблемы смены идентификационных данных, которая была отклонена нашей IT-областью.

Надеюсь, это кому-нибудь поможет!

Error: User Rate Limit ExceededDirectoryError: User Rate Limit ExceededDirectoryInfoError: User Rate Limit Exceeded
0

@ & Quot; \ Server01 \ C $ \ Data \ подпапка & Quot;

Я сделал явную акцию и избавился отc$ и сделал это выглядит так:

@ & Quot; \ Server01 \ TheData \ подпапка & Quot;

и это начало работать.

Я не уверен на 100%, что именно это решило проблему с разрешениями, но оно начало работать сразу после внесения этого изменения.

Похожие вопросы