我有一个使用文件流的SQL Server 2008数据库,除了一个非常奇怪的情况之外,所有工作都很好。如果我在我的数据库上,比如一台笔记本电脑,在本地安装的SQL Server 2008版本上连接到网络,一切正常。如果我拔下网线,过了一段时间SqlFileStream类无法用Win32异常初始化(关于连接数据库的其他一切工作正常)。如果我在没有网络电缆的情况下重新开始,它将无法使用相同的错误。如果即使没有网络连接也可以插入网络电缆,它可以正常工作......将其取出,无需任何操作。
我正在使用通常记录的方法连接到文件流
SqlFileStream fileStream = new SqlFileStream(path,
context,
FileAccess.ReadWrite,
FileOptions.SequentialScan,
0);
根据存储过程生成路径和上下文,并在以下
中生成它们SELECT Data.PathName(), GET_FILESTREAM_TRANSACTION_CONTEXT()
FROM dbo.DocumentFiles
WHERE [File_ID] = @FileId
创建SqlFileStream实例时出现以下错误
Win32Exception发生了网络 位置无法到达。更多 有关网络的信息 疑难解答,请参阅Windows帮助。
没有内在异常。
我已经尝试了很多东西来解决这个问题而没有运气。 google-land中没有人似乎有同样的问题所以显然我正在做的事情很傻。如果有人能对此有所了解,我将非常感激。
詹姆斯
答案 0 :(得分:0)
嗯。拔下电缆时,您的网络接口看起来很糟糕。当它发生时,TCP / IP堆栈也会下降,因为没有剩余的可用接口。我建议您安装MS Loopback适配器,这article解释了如何在Windows XP中执行此操作;很容易谷歌关于如何在其他操作系统中执行此操作。安装后不要忘记为其分配静态 IP,如192.168.1.x这样的私有地址就足够了。由于环回适配器是虚拟适配器,它始终处于“Up”状态,即使拔下电缆也会阻止Windows关闭TCP堆栈。