SQLFileStream исключение "Сетевой путь не найден" - PullRequest
4 голосов
/ 31 августа 2010

Я пытаюсь вставить файл в базу данных, которая использует потоковую передачу файлов 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), я получаю сообщение об ошибке «Доступ запрещен».

Ответы [ 2 ]

3 голосов
/ 31 августа 2010

Различные сообщения об ошибках означают проблему с DNS или брандмауэром.Определите, что такое filePathName.Value, и попробуйте пропинговать часть имени хоста с сервера, с которого вы не можете подключиться.Если имя хоста не решает проблему с DNS.

Скорее всего, проблема с брандмауэром.Если это так , см. Статью MSDN .

0 голосов
/ 21 марта 2016

У меня возникла такая же проблема: «Не удалось найти сетевой путь». Я думаю, что это потому, что я пытался использовать FileStream с аутентификацией SQL Server (а не аутентификацией Windows / NTFS).

В документации Microsoft отмечается, что: "логины SQL не будут работать с контейнерами FILESTREAM."

https://msdn.microsoft.com/en-au/library/gg471497%28v=sql.130%29.aspx

В следующей статье Microsoft Connect есть некоторые обходные пути, но я их не пробовал.

https://connect.microsoft.com/SQLServer/feedback/details/416460/sql-server-authentication-filestream

...