来自Microsoft Access数据库的C#Web服务-概念问题

来自Microsoft Access数据库的C#Web服务-概念问题,c#,ms-access,C#,Ms Access,因此,出于我无法控制的原因,我和其他一些开发人员需要编写一个C#Web API来连接access数据库,以允许通过JSON返回数据,满足各种仪表板和报告需求 是的,我知道这是一个奇怪的设置。基本上是一个具有传统访问数据库的客户端,它们不能更改。已经提出了各种备选方案,但不幸的是,上述就是需要采取的方式 无论如何,我的问题是Access在打开数据库时会锁定它 情景: 客户端正在查看新的仪表板等,仪表板等从Web API接收数据,而Web API又连接到access数据库 在使用Access打开Ac

因此,出于我无法控制的原因,我和其他一些开发人员需要编写一个C#Web API来连接access数据库,以允许通过JSON返回数据,满足各种仪表板和报告需求

是的,我知道这是一个奇怪的设置。基本上是一个具有传统访问数据库的客户端,它们不能更改。已经提出了各种备选方案,但不幸的是,上述就是需要采取的方式

无论如何,我的问题是Access在打开数据库时会锁定它

情景: 客户端正在查看新的仪表板等,仪表板等从Web API接收数据,而Web API又连接到access数据库

在使用Access打开Access DB文件以更新某些值之前,一切正常。这将终止通过WebAPI的连接,并出现以下错误:

此错误仅在Access中打开文件时存在。一旦数据库退出,正常服务将恢复

现在我已经读了很多关于访问的互联网站,比如为用户创建锁等等,我知道让多个用户同时访问一个访问数据库可能是非常糟糕的做法

我是否正确地认为这只是访问的一个限制,或者当Access数据库在Access中打开时,是否有某种方法可以解决web服务消亡的问题?我查看了各种用户等,但似乎找不到合适的解决方法

提前谢谢


最亲切的问候

当出现异常时,您能将文件复制到另一个位置,然后重试吗?是的,这确实解决了问题,但如果要推出,它并不真正适合用户工作流。例如,用户查看新的仪表板,决定更新某些值,打开access,仪表板停止工作,直到access关闭。当您侦听文件更改事件并复制时?听起来Access UI用户和/或ASP.NET服务帐户对数据库文件所在的文件夹没有“更改”权限,因此当他们在Access中打开数据库时,他们会隐式地执行“打开独占”操作。这是一个正确的痛点,因为这是另一个在技术层面上可行的想法,但并不真正适合用户流。并且存在数据库可能在Access中更新的风险,但可能会在一段时间内与UI不同步。这很令人沮丧,因为他们基本上想要一个100%的实时用户界面,虽然在正常情况下是合理的,但没有对现有流程进行任何更改,等等。