Zugriff verweigert beim Einfügen einer Datei in Sql Server 2012 FileTable mithilfe von File.CreateFile auf der ASP.NET-Website

Ich habe eine ASP.NET-Website. Ich möchte eine Datei auf die Website hochladen und in einer FileTable in SqlServer 2012 speichern.

Nach dem Hochladen enthält mein Website-Code ein Stream-Objekt, das ich mit speichern möchte

System.IO.File.Create()

Auf die FileTable kann in Windows Explorer zugegriffen werden, wenn ich gehe

\\ComputerName\FileStremShareName\FileStreamDirectoryName\FileTableName

Ich kann Dateien in diesem Ordner mit Windows Explorer manuell erstellen. Ich kann auch SQL verwenden, um Dateien in die File-Tabelle einzufügen. In beiden Fällen zeigen Windows Explorer und SQL Server die Dateien wie erwartet an.

Wenn ich jedoch versuche, mit System.IO.File.CreateFile Dateien im Pfad zu erstellen, z.

File.Create(\\\\ComputerName\FileStremShareName\FileStreamDirectoryName\FileTableName\myfile.jpg)

Ich erhalte die Meldung "Zugriff auf Pfad '[Pfad]' verweigert"

Ich gehe davon aus, dass dies darauf zurückzuführen ist, dass meine IIS-Anwendungspoolidentität keinen Lese- / Schreibzugriff auf diesen Speicherort hat.

Normalerweise würde ich in NTFS-Berechtigungen gehen und Lese- / Schreibzugriff auf das Identitätskonto zuweisen, aber ich kann dies nicht tun, da der zugrunde liegende Ordner vor mir verborgen ist.

Ich habe überlegt, mein Stream-Objekt in ein Byte-Array zu konvertieren und SQL zum Einfügen in die FileTable zu verwenden. Dies scheint jedoch ineffizient zu sein, da ich den Stream zuerst in ein Byte-Array konvertieren muss, damit er dann an SQL übergeben wird. Dies scheint, als würde ich meine Dateidaten zweimal analysieren, um sie einmal zu speichern.

Ist es möglich, mit File.Create oder ähnlichem innerhalb einer ASP.NET-Website in die Dateitabelle zu schreiben? Wenn ja, wie mache ich das?