0

我开发了一个使用ASP.NetwithMicrosoft Access作为数据库的 Web 应用程序。现在我已经使用 OleDB 连接连接到数据库。问题是当我在 Connection String 中提供数据库源时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/...”未找到

4

3 回答 3

1

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

C:\WebApp\DB\data.mdb
于 2011-12-13T12:28:32.103 回答
1

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

如果您使用 Web 应用程序发布访问数据库,您还可以调查将其放在 App_Data 文件夹中。阅读此处了解更多信息。

一个完整的例子是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| 运行时的路径。

于 2011-12-13T12:32:41.237 回答
0

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

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

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

于 2011-12-13T12:34:03.357 回答