上次更新时间:2020 年 3 月 24 日
问题
如果你通过 MSI 同时安装了 Office 365 和更旧版本的 Office,并且有一个使用 OLEDB 接口或 ADO.Net 接口的程序,则可能会遇到错误,其中指出即使关闭连接后数据库仍处于锁定状态。
仅当你安装了 Office 365 版本 2002 且通过 MSI 安装了另一版本的 Office 时,才会出现此问题。 例如,你可能安装了 Office 365,还安装了 2013 Access 运行时或 2010 Access 数据库引擎可再发行组件。
情景
如果你在打开和关闭到某数据库文件的连接后,尝试在 .Net 程序中删除该数据库文件,则你可能会遇到以下异常:
System.IO.Exception:“该进程无法访问文件”数据库路径,因为另一进程正在使用它。
查看数据库位置时,你还会看到 Ace 数据库锁定文件 (databasename.laccdb) 仍然存在。
通常,在几秒钟到几分钟之后,该锁定文件将被删除,且对该数据库的访问权限将被还原。
自 Office 365 版本 2002 起,将为 COM OLEDB 接口提供 Office 365 随附的 Ace 版本,而在之前的版本中使用 MSI 产品随附的 Ace 版本。
行为存在差异(尤其是在 Office 365 中),连接默认为使用 OLEDB 资源池,而在 MSI 中,默认情况下连接不会使用池。 这种情况的影响是,连接关闭/销毁后不会被立即释放,原因是系统附加到这些连接上以应对可能重用的情况。 但这使得在池释放连接之前,不会释放对数据库文件设置的锁定。
状态:已修复
此问题现已修复。 如果启动 Access,再依次单击“文件”、“帐户”、“更新选项”和“立即更新”,这将确保你具有最新版本,并且所有版本都会提供修补程序。
如果你拥有版本 2002(当前频道),则此问题已在内部版本 16.0.12527.20278 或更高版本中得到修复。
如果你拥有版本 2003(当前频道 [预览]),则此问题已在内部版本 16.0.12624.20176 或更高版本中得到修复。
如果你拥有版本 2004(Beta 版频道),则此问题已在内部版本 16.0.12705.10000 或更高版本中得到修复。
此问题不影响任何其他版本。