Я бы хотел получить определенный файл в виде байтового массива в моем приложении .net core 2.2. Приложение использует iis и запускается так:
new WebHostBuilder()
.UseKestrel(opt => opt.AddServerHeader = false)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>();
Пул приложений для сайта использует выделенного пользователя службы. Этот пользователь имеет права доступа к общему ресурсу и находится в списке безопасности для UNC-Path-Folder, а также непосредственно для файла.
Однако, когда я пытаюсь прочитать файл следующим образом:
_fileContent = File.ReadAllBytes("\\working\UNC\Path\File.pdf");
я получаю следующее исключение:
System.UnauthorizedAccessException: Access to the path '\\working\UNC\Path\File.pdf' is denied.
at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at System.IO.File.ReadAllBytes(String path)
Путь UNC в настоящее время фактически является каталогом наместная машина. Поэтому я попытался загрузить файл, используя путь к Windows , например: "c: \ Path \ File.pdf". И это работает просто отлично ! Поэтому я пришел к выводу, что проблема на самом деле не имеет ничего общего с разрешениями безопасности.
Может кто-нибудь подсказать этот вопрос?