Я пытаюсь вставить файл в базу данных, которая использует потоковую передачу файлов SQL. Когда я пытаюсь инициализировать объект SqlFileStream, с которым я буду вставлять, я получаю Исключение Файла, сообщающее, что сетевой путь не может быть найден.
Код, указанный ниже:
using (SqlFileStream sqlStream = new SqlFileStream(filePathName.Value, fileToken.Value, FileAccess.Write))
{
byte[] buffer = new byte[512 * 1024]; // 512Kb
int bytesRead = fs.Read(buffer, 0, buffer.Length);
while (bytesRead > 0)
{
sqlStream.Write(buffer, 0, bytesRead);
bytesRead = fs.Read(buffer, 0, buffer.Length);
}
}
Сбой кода в первой строке при создании SqlFileStream. Ниже приведены мои настройки по настройке FILESTREAM. На уровне базы данных я установил уровень доступа к Файловому потоку: «Полный доступ включен».
Включить FILESTREAM для доступа к Transact-SQL: проверено
Включить FILESTREAM для доступа к потоковому вводу-выводу файла: проверено
Имя общего ресурса Windows: DVDB1FS
Разрешить удаленным клиентам иметь потоковый доступ к данным FILESTREAM: отмечено
Любое предположение о том, что может быть причиной этого, было бы замечательно. Я успешно использовал точно такой же код в других средах без проблем, поэтому я знаю, что это должна быть какая-то проблема конфигурации. Может быть важно отметить, что если я пытаюсь получить доступ к общей папке Windows // имя_сервера / DVDB1FS, я также получаю сообщение об ошибке «Сетевой путь не найден» из проводника Windows. Если я получаю доступ к общему ресурсу напрямую на другом сервере в другой среде (Test, Production), я получаю сообщение об ошибке «Доступ запрещен».