我在访问位于远程服务器上的数据库时遇到问题。如何通过指向远程共享的虚拟文件夹访问数据库
我有一个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