UnauthorizedAccessException: UNC Доступ из веб-приложения с пулом приложений с использованием учетной записи службы

Я пытаюсь получить доступ к сетевому ресурсу \\\\ip\c$\imp\ из веб-приложения.

  • AppPool использует учетную запись службы домена для идентификации.
  • У учетной записи домена есть полный доступ к \ip\c $\imp\
  • AppPool работает в интегрированном режиме - framework 4.0.

Но я все еще получаю System.UnauthorizedAccessException. Любая идея почему?

FileAttributes attributes = File.GetAttributes("\\ip\c$\imp\testfile.txt");
if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
 Console.WriteLine("read-only file");
}
else
{
 Console.WriteLine("not read-only file");
}
2 ответа

Это не работает, если ip in\ip\c $\imp\testfile.txt - это тот же ip веб-сервера, на котором работает приложение, в противном случае он работает нормально.


Похоже, ты забыл избежать обратных косых черт на пути.

Инструментом общего назначения для отслеживания таких проблем, как этот, является Windows Sysinternals Process Monitor ProcMon. Настройте фильтр для своего приложения (или для части имени пути, например Path, в file.txt) и посмотрите, что получится. В случае неправильно экранированных символов вы увидите искаженное имя пути.

licensed under cc by-sa 3.0 with attribution.