我在访问位于远程服务器上的数据库时遇到问题。
我有一个试图连接到数据库的 ASP.NET 2.0 网页。
该数据库是通过一个虚拟文件夹(我在 IIS 中设置的)访问的。
虚拟文件夹指向包含数据库的远程共享。
虚拟文件夹(在 web 应用程序根目录中)通过 UNC 路径指向远程服务器上的共享:
\\databaseServerName\databaseFolder$\
虚拟文件夹的“读取”和“浏览”权限设置为“真”。
我将连接字符串存储在 web.config 的“appSettings”部分:
<add key="conStrVirtual" value="Provider=Microsoft.Jet.OleDb.4.0;Data Source=http://webAppServerName/virtualFolderName/databaseName.MDB;Jet OLEDB:Database Password=dumbPassword;"/>
连接对象在我的 .aspx 页面上声明:
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
当我运行上面的代码时,我收到以下错误(在代码的这一行'objConnVirtual.Open()':
异常详细信息:System.Data.OleDb.OleDbException:不是有效的文件名。
我检查了数据库名称并且它是正确的(甚至复制/粘贴它以确保)
如果我将连接字符串的“数据源”部分放入浏览器的地址栏中,我可以成功地看到远程服务器上共享的内容。
不确定这是权限问题还是代码问题。
我已经用谷歌搜索了这个废话,但无法找到解决方案。
任何帮助深表感谢。