【发布时间】:2010-08-30 22:43:51
【问题描述】:
我正在尝试将文件插入到使用 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:已选中
为文件 I/O 流式访问启用 FILESTREAM:选中
Windows 共享名称:DVDB1FS
允许远程客户端对 FILESTREAM 数据进行流式访问:选中
任何关于可能导致这种情况的建议都会很棒。我已经在其他环境中成功使用了完全相同的代码而没有问题,所以我知道它一定是某种配置问题。需要注意的是,如果我尝试访问 Windows 共享//servername/DVDB1FS,我还会从 Windows 资源管理器收到“找不到网络路径”错误。如果我在不同环境(测试、生产)中直接访问不同服务器上的共享,我会收到“访问被拒绝”错误。
【问题讨论】:
标签: c# sql sql-server filestream