没有网络电缆的SQL Server 2008 Filestream Win32错误!

时间:2010-02-04 16:31:52

标签: sql-server sql-server-2008 filestream

我有一个使用文件流的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中没有人似乎有同样的问题所以显然我正在做的事情很傻。如果有人能对此有所了解,我将非常感激。

詹姆斯

1 个答案:

答案 0 :(得分:0)

嗯。拔下电缆时,您的网络接口看起来很糟糕。当它发生时,TCP / IP堆栈也会下降,因为没有剩余的可用接口。我建议您安装MS Loopback适配器,这article解释了如何在Windows XP中执行此操作;很容易谷歌关于如何在其他操作系统中执行此操作。安装后不要忘记为其分配静态 IP,如192.168.1.x这样的私有地址就足够了。由于环回适配器是虚拟适配器,它始终处于“Up”状态,即使拔下电缆也会阻止Windows关闭TCP堆栈。