Доступ запрещен при вставке файла в Sql Server 2012 FileTable с использованием File.CreateFile на веб-сайте ASP.NET
У меня есть сайт ASP.NET. Я хочу загрузить файл на веб-сайт и сохранить его в FileTable в SqlServer 2012.
После загрузки код моего веб-сайта содержит объект Stream, который я хотел бы сохранить с помощью
System.IO.File.Create()
FileTable доступен в Windows Explorer, когда я иду в
\\ComputerName\FileStremShareName\FileStreamDirectoryName\FileTableName
Я могу вручную создавать файлы в этой папке с помощью проводника Windows. Я также могу использовать SQL для вставки файлов в таблицу файлов. В обоих случаях Windows Explorer и SQL Server показывают файлы, как и ожидалось.
Однако, если я попытаюсь использовать System.IO.File.CreateFile для создания файлов в пути, например,
File.Create(\\\\ComputerName\FileStremShareName\FileStreamDirectoryName\FileTableName\myfile.jpg)
Я получаю сообщение "Доступ к пути" [путь] 'запрещен "
Я предполагаю, что это потому, что у моего удостоверения пула приложений IIS нет доступа для чтения / записи в это местоположение.
Обычно я заходил в разрешения NTFS и назначал права на чтение / запись учетной записи Identity, но я не мог этого сделать, потому что основная папка скрыта от меня.
Я рассмотрел вопрос о преобразовании моего объекта Stream в байтовый массив и использовании SQL для его вставки в FileTable, но это кажется неэффективным, потому что мне сначала нужно преобразовать поток в байтовый массив, чтобы затем он был передан в SQL. Похоже, я анализирую данные моего файла дважды, чтобы сохранить его один раз.
Можно ли записать в таблицу файлов с помощью File.Create или аналогичного на веб-сайте ASP.NET. Если да, то как мне это сделать?