我正在尝试从经典ASP脚本连接MS Access数据库。
我正在使用运行IIS7的64位Windows 7操作系统
我有以下代码:
Dim Connection
Set Connection = Server.CreateObject("ADODB.Connection")
Response.Write("object created...")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("D://Somnath//ExtraLogistics//Source//ZipDB.mdb") & ";"
Response.Write("connected...")
但是在IIS上运行应用程序时,我在浏览器中收到此错误The website cannot display the page
。
请帮我从IIS连接到Access数据库。
答案 0 :(得分:1)
您的MapPath看起来不正确。
看看这个ASP reference。
修改强>
Server.MapPath指向虚拟引用的物理位置:
例如:
'根目录的物理路径
Response.Write Server.MapPath(“/”)
'DataDirectory的物理路径
Response.Write Server.MapPath(“/ DataDirectory /”)
将 ZipDB.mdb 放在网站的根目录中,然后更改 Server.MapPath(“/”)
答案 1 :(得分:1)
使用“file dsn”:
conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\filepath\yourdb.mdb;"
答案 2 :(得分:0)
Server.MapPath将URL路径转换为服务器上的物理路径,因此Server.MapPath(“D://Somnath//ExtraLogistics//Source//ZipDB.mdb”)几乎肯定是错误的。
如果mdb文件位于http://yourhost/Somnath/ExtraLogistics/Source/ZibDB.mdb,那么您将使用Server.MapPath("/Somnath/ExtraLogistics/Source/ZibDB.mdb")
,Server.MapPath将为您提供服务器文件系统中mdb文件的位置。
如果文件位于D:\ Somnath \ ExtraLogistics \ Source \ ZipDB.mdb,则只需使用该文件路径并完全删除Server.MapPath。
像这样:
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Somnath\ExtraLogistics\Source\ZipDB.mdb;"
答案 3 :(得分:0)
请注意,您希望将数据库存储在相对于执行asp文件的位置的父目录中。如果不这样做,则可以通过浏览器中的URL获得数据库。
另请注意,要使其工作,必须在IIS中启用“允许父路径”。