【发布时间】:2012-01-04 00:04:40
【问题描述】:
我有一个访问数据库,它位于服务器 x 上,iis 正在服务器 y 上运行。我的一个网页从访问数据库访问数据。如果有人打开了访问数据库,比如说我们网络上的最终用户,则网页将失败,并显示...已由另一个用户以独占方式打开错误消息。
我创建了一个本地访问数据库并使用链接表来访问这些表。即使我仍然得到已经由另一个用户错误打开的错误。如果我通过 Windows 资源管理器浏览到服务器 x 并打开数据库,我可以毫无问题。所以我的问题是如何模拟与数据库的相同类型的连接而不会引发错误是访问数据库的权限问题还是我的连接字符串中允许我访问数据库的内容。
由于它在我的 connection.open 命令期间引发错误,我认为它要么与权限相关,要么与我需要添加到我的连接字符串中的其他内容有关。我已授予对本地目录上的 IIS AppPool\ 的完全控制权,我的 access 数据库的本地实例所在的目录中,但似乎没有任何区别。
我的连接字符串如下所示:
Private Shared connSheriff As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\serverx\directory\Access\MyDatabase.mdb;Jet OLEDB:Database Password=property;")
【问题讨论】:
-
您是否以管理员身份打开数据库?如果您怀疑连接字符串,那么可能值得发布它。
-
Private Shared connSheriff As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\serverx\directory\Access\MyDatabase.mdb;Jet OLEDB:Database Password=property;" )
-
您可能会考虑使用您正在使用的网络编程语言标记您的问题,以便接触更广泛的受众。另外,我建议您在问题中添加一些换行符、标点符号和其他格式,以使其更具可读性。
-
您是否还授予了 .mdw 文件所在文件夹中 IIS AppPool 的完全控制权限?
-
我认为这是一个权限问题。我目前正在尝试自己解决类似的问题。通过将 db 文件夹的完全权限授予本地 ASPNET 用户,我能够使应用程序与本地数据库一起工作。如果您查看计算机管理控制台下的应用程序事件日志,您可能会获得更多信息。