我有一个位于服务器x上的访问数据库,iis正在服务器y上运行。我的一个网页访问来自访问数据库的数据。如果某人打开了访问数据库,请说明我们网络上的最终用户网页失败,并且......已经由另一个用户错误消息专门打开了。
我创建了一个本地访问数据库,并使用链接表以便以这种方式访问表。即使我仍然由另一个用户错误专门打开。如果我通过Windows资源管理器并浏览到服务器x并打开数据库,我可以毫无问题。所以我的问题是如何模拟与数据库相同类型的连接,而不会抛出错误,这是访问数据库的权限还是我的connectionstring中允许我访问数据库的内容。
因为它在我的connection.open命令期间抛出错误我认为它是权限相关或我需要添加到我的连接字符串的其他东西。我已授予对我的本地访问数据库实例所在的本地目录中的IIS AppPool \的完全控制权,但似乎没有什么区别。
我的连接字符串如下:
Private Shared connSheriff As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\serverx\directory\Access\MyDatabase.mdb;Jet OLEDB:Database Password=property;")
答案 0 :(得分:1)
默认情况下,有一些options within the mdb会更改数据库的打开方式,这些应该是您的第一个通话端口,特别是将“默认打开模式”设置为“共享”。
您已经拆分了数据库(共享后端数据表,链接表和前端的其余数据表)。确保每个用户使用前端mdb的单独副本,否则您将遇到锁定问题。
有一个命令行开关(/ excl)设置独占模式,但你只是省略了这个以打开db shared,所以我怀疑这是一个问题。
您可能已经知道这一点,但“Shared”修饰符与应用程序或用户之间的共享无关,而是在您的类的实例之间共享连接变量(c#等效于“静态”)