ASP.Net中的Server.MapPath

时间:2011-12-13 12:26:57

标签: asp.net vb.net ms-access server.mappath

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

我尝试使用

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

将路径指定为“C:/WebApp/DB/data.mdb”,但会抛出相同的错误

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

问题应该是什么,即使在我使用Plesk将其发布到服务器时在loalhost中运行良好,它也会显示相同的错误,指出“C:/inetpub/xyx.com/httpdocs / ...”结果

3 个答案:

答案 0 :(得分:1)

你试过windows路径吗? (注意反斜杠)

C:\WebApp\DB\data.mdb

答案 1 :(得分:1)

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

如果您要使用Web应用程序发送访问数据库,还可以调查将其放在App_Data文件夹中。请阅读here了解详情。

一个功能齐全的例子是here

请注意,在您当前的示例中,如果DB是Web根目录下的文件夹,则任何人都可以下载您的数据库(如果他们知道文件名)。默认情况下,存储在App_Data中的项目不会提供给客户端。

另请注意,有用的是,当您将项目存储在App_Data中时,您的连接字符串将变为:

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

(加上任何用户/密码详情)。 ASP.Net将解析| DataDirectory |运行时的路径。

答案 2 :(得分:0)

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

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

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