SQL Server 2008 Filestream Win32 ошибка без сетевого кабеля! - PullRequest
4 голосов
/ 04 февраля 2010

У меня есть база данных SQL Server 2008, использующая Filestreaming, и все работает отлично и прекрасно, за исключением одного очень странного обстоятельства. Если у меня есть моя база данных, скажем, на ноутбуке, на локально установленной версии 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

Произошла исключительная ситуация Win32. Сеть местоположение не может быть достигнуто. Для большего информация о сети поиск и устранение неисправностей см. в справке Windows.

Нет внутреннего исключения.

Я пытался решить эту проблему без удачи. ни у кого в гугл-ленте, похоже, нет такой проблемы, так что, очевидно, что-то глупое я делаю Если бы кто-нибудь мог пролить свет на это, я был бы очень признателен.

Джеймс

1 Ответ

0 голосов
/ 04 февраля 2010

Хм. Похоже, что ваш сетевой интерфейс выходит из строя, когда вы отключите кабель. Когда это происходит, стек TCP / IP также выходит из строя, так как больше не осталось доступных интерфейсов. Я предлагаю вам установить адаптер MS Loopback, в этой статье объясняется, как это сделать в Windows XP; легко гуглить о том, как это сделать в других ОС. Не забудьте назначить ему статический IP после установки, частного адреса, такого как 192.168.1.x, будет достаточно. Поскольку петлевой адаптер является виртуальным, он постоянно находится в состоянии «Вверх», даже когда вы отключаете кабель и не позволяет Windows отключить стек TCP.

...