我在訪問位於遠程服務器上的數據庫時遇到問題。如何通過指向遠程共享的虛擬文件夾訪問數據庫
我有一個ASP.NET 2.0的網頁正在試圖連接到一個數據庫。
數據庫通過虛擬文件夾(我在IIS中設置)訪問。
虛擬文件夾指向包含數據庫的遠程共享。
虛擬文件夾(在網絡應用程序的根目錄)在一個共享的遠程服務器上通過UNC路徑指向:
\\databaseServerName\databaseFolder$\
虛擬文件夾已「讀」和「瀏覽」設置爲權限'真正'。
我的連接字符串存儲在 '的appSettings' web.config中的部分:
<add key="conStrVirtual" value="Provider=Microsoft.Jet.OleDb.4.0;Data Source=http://webAppServerName/virtualFolderName/databaseName.MDB;Jet OLEDB:Database Password=dumbPassword;"/>
連接對象是我的.aspx頁面上declard:
Dim objConnVirtual As New OleDbConnection(ConfigurationManager.AppSettings("conStrVirtual"))
下面是代碼試圖使用連接對象:
Public Sub Test()
If objConnVirtual.State <> ConnectionState.Open Then
objConnVirtual.Open()
End If
Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM TableName", objConnVirtual)
objDR = cmd.ExecuteReader()
If objDR.Read() Then
response.write("Shazaam! Data shows up here")
End If
objDR.Close()
objConnVirtual.Close()
End Sub
當我運行上面的代碼時,我得到以下e RROR(在此行的代碼「objConnVirtual.Open()」的:
異常詳細信息:System.Data.OleDb.OleDbException:不是有效的文件名。
我檢查了數據庫的名稱,它是正確的(甚至複製/粘貼它,以確保)
如果我把連接字符串的「數據源」節到我的瀏覽器的地址欄中我可以成功查看遠程服務器上的共享內容。
不確定這是否是權限問題或代碼問題。
我已經使用了這個垃圾,但一直沒有找到解決辦法。
任何幫助,非常感謝。
嗨路易斯,謝謝你的回答。當你說'讓AppPool運行一個專門的服務用戶'時,你可以擴展你的意思嗎?我爲我的應用程序添加了一個新的應用程序池,但仍無法通過網頁訪問數據庫。 – Dhaust 2008-12-04 06:53:31