SQLFileStream 异常“未找到网络路径”

Dan*_*bly 6 c# sql sql-server filestream

我正在尝试将文件插入到使用 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);
                                    }
                                }
Run Code Online (Sandbox Code Playgroud)

创建 SqlFileStream 时,代码在第一行失败。以下是我关于如何配置 FILESTREAM 的设置。在数据库级别,我已将 Filestream 访问级别设置为:“启用完全访问权限”。

为 Transact-SQL 访问
启用 FILESTREAM :选中为文件 I/O 流访问启用 FILESTREAM:选中
Windows 共享名称:DVDB1FS
允许远程客户端对 FILESTREAM 数据进行流式访问:选中

关于可能导致这种情况的任何建议都会很棒。我已经成功地在其他环境中使用了这个完全相同的代码,没有问题,所以我知道它一定是某种配置问题。需要注意的是,如果我尝试访问 Windows 共享 //servername/DVDB1FS,我还会收到来自 Windows 资源管理器的“未找到网络路径”错误。如果我直接在不同环境(测试、生产)中的不同服务器上访问共享,我会收到“访问被拒绝”错误。

Jus*_*ing 5

不同的错误消息意味着可能是 DNS 或防火墙问题。确定 filePathName.Value 是什么,并尝试从无法连接的服务器 ping 其主机名部分。如果主机名无法解析,则表明存在 DNS 问题。

更有可能是防火墙问题。如果是这种情况,请参阅这篇 MSDN 文章