2011-12-13 30 views
0

我开发了一个Web应用程序,使用ASP.NetMicrosoft Access作为数据库。现在我已经使用OleDB连接连接到数据库。问题是当我给连接字符串Source="C:/WebApp/DB/data.mdb"数据库源。连接抛出一个错误,指出路径无效,并且没有这样的文件。ASP.Net中的Server.MapPath

我尝试使用

Server.MapPath("~/DB/data.mdb") 

这给路径 “C:/WebApp/DB/data.mdb”,但抛出了同样的错误

Colud not locate file 'C:/WebApp/DB/data.mdb' 

应该是什么问题,即使虽然如果它在loalhost中使用Plesk发布到服务器时效果不错,它会显示相同的错误,指出“C:/inetpub/xyx.com/httpdocs/ ...”未找到

回答

1

尝试使用wndows路径(反斜杠而不是正斜杠)。

如果您要发布带有Web应用程序的访问数据库,还可以调查将其放入App_Data文件夹中。有关更多信息,请阅读here

一个完全合作的例子是here

注意,在当前的例子中,如果数据库是Web根目录下的一个文件夹,任何人都可能会下载你的数据库,如果他们知道文件名。默认情况下,存储在App_Data中的项目不会被提供给客户端。

还要注意的是,有效地,当你存储在App_Data文件的项目,您的连接字符串就变成:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\data.mdb;Persist Security Info=False;" 

(加上任何用户名/密码信息)。 ASP.Net将解决| DataDirectory |运行时路径。

1

您是否尝试过使用Windows路径? (注意反斜杠)

C:\WebApp\DB\data.mdb 
0

有可能有几个问题,你可以请检查以下项目:

  • 检查DB文件夹是存在于您的应用程序的根级别
  • 确保数据库文件data.mdb是存在乌德DB文件夹

根据上面列出的缺失任何选项采取适当的措施。