Microsoft Jet数据库引擎无法在网络位置

时间:2015-07-10 20:37:21

标签: ms-access asp-classic

我正在开发一个ASP经典网站,它连接到MS Access数据库并实时显示数据(我知道MS Access不是用于此目的的最佳选择,但我公司将它用于所有内容,所以我只是决定现在用它)。当MS数据库在我的硬盘驱动器(C :)上时,它工作正常。但是当我将数据库移动到其中一个网络位置时,例如U:\ tracking,它会给我这个错误:

Microsoft JET Database Engine error '80004005'
The Microsoft Jet database engine cannot open the file 'U:\tracking\database.mdb'. It is already opened exclusively by another user, or you need permission to view its data.

我知道这可能是由于有关为MS Access数据库创建临时文件(.ldb)的安全权限(读取和写入)。我重置了包含数据库的U:\ tracking文件夹的安全权限,但它不起作用。我甚至完全控制了“组和用户名”会话中列出的每个帐户,但错误仍然存​​在。

我还在IIS管理器中检查了我的身份验证设置。唯一启用的设置是匿名身份验证,此时我使用应用程序池标识。如果我使用特定用户,我可以将其添加到上述权限列表并给予相应的权限,但我不能保证它是合适的。关于我应该怎么做才能连接到网络位置的数据库?任何帮助将不胜感激!

以下是我用来连接数据库的简单代码:

Dim dbCon
Set dbCon = Server.CreateObject("ADODB.Connection")
dbCon.Provider = "Microsoft.Jet.OLEDB.4.0"
dbCon.Open = "U:\tracking\database.mdb"

1 个答案:

答案 0 :(得分:-1)

考虑使用ASO连接字符串参数,因为此W3Schools page表示。

 void ForUserMethod(IUserService userService)

此外,如果server map targets the root directory,则不需要明确定义路径名。这尤其正确,因为反斜杠证明对使用正斜杠的Web URL有问题。