Acesso negado ao inserir arquivo no Sql Server 2012 FileTable usando File.CreateFile no site ASP.NET
Eu tenho um site ASP.NET. Quero fazer upload de um arquivo para o site e salvá-lo em uma FileTable no SqlServer 2012.
Após o upload, o código do meu site tem um objeto Stream que eu gostaria de salvar usando
System.IO.File.Create()
A FileTable está acessível no Windows Explorer quando vou para
\\ComputerName\FileStremShareName\FileStreamDirectoryName\FileTableName
Posso criar arquivos manualmente nesta pasta usando o Windows Explorer. Também posso usar o SQL para inserir arquivos na tabela Arquivo. Nos dois casos, o Windows Explorer e o SQL Server mostram os arquivos conforme o esperado.
No entanto, se eu tentar usar o System.IO.File.CreateFile para criar arquivos no caminho, por exemplo,
File.Create(\\\\ComputerName\FileStremShareName\FileStreamDirectoryName\FileTableName\myfile.jpg)
Recebo a mensagem "Acesso ao caminho '[caminho]' negado"
Suponho que isso ocorre porque minha identidade do pool de aplicativos do IIS não tem acesso para ler / gravar neste local.
Normalmente, eu usaria permissões NTFS e atribuiria acesso de leitura / gravação à conta de identidade, mas não consigo fazer isso porque a pasta subjacente está oculta para mim.
Eu considerei converter meu objeto Stream em uma matriz de bytes e usar o SQL para inseri-lo na FileTable, mas isso parece ineficiente porque eu tenho que converter o fluxo em uma matriz de bytes primeiro para que ele seja passado para o SQL. Parece que estou analisando meus dados do arquivo duas vezes para salvá-lo uma vez.
É possível gravar na tabela de arquivos usando File.Create ou similar em um site ASP.NET. Se sim, como faço isso?