我試圖將文件插入到使用SQL文件流的數據庫中。當我嘗試初始化將要插入的SqlFileStream對象時,我收到一個文件異常,指出無法找到網絡路徑。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資源管理器收到「未找到網絡路徑」錯誤。如果我直接在不同環境中的另一臺服務器上訪問共享(測試,生產),則會收到「訪問被拒絕」錯誤。
當我ping通主機名「DV-DB1」,它解析爲10.10.10.10這與在iSCSI陣列相關的IP地址。我最終添加了一個主機條目到system32/drivers/etc/hosts文件,並將其指向服務器的正確IP地址。不知道爲什麼會這樣做,但無論如何,我們有一個解決辦法,直到網絡管理員可以查看它。謝謝! – 2010-08-31 15:47:50