我需要设置一个docker容器,其中遗留应用程序需要连接到MS-Access 2003数据库。 DB的连接字符串嵌入在应用程序本身中,因此无法更改。所以我无法将提供者更改为ACE.OleDb
。
我已根据...
创建了docker图像...但是在容器上运行遗留应用程序时,我总是得到相同的结果。
Microsoft.Jet.OLEDB.4.0'提供程序未在本地计算机上注册。
我还尝试在容器中使用以下命令在SysWow64中注册msjetoledb40.dll
...
C:\ Windows \ SysWow64 \ regsvr32 Msjetoledb40.dll
......但似乎也没有用。
我还在32位和64位(AccessDatabaseEngine.exe& AccessDatabaseEngine_X64.exe)中安装了Microsoft Access数据库引擎可再发行组件(2007,2010& 2016),但总是得到与上述相同的错误。
2007 Office System Driver: Data Connectivity Components
Microsoft Access Database Engine 2010 Redistributable
Microsoft Access Database Engine 2016 Redistributable
有什么想法吗?
答案 0 :(得分:2)
解决:
我找到了一个' Jet 4.0 Service Pack 8 (SP8) for Windows 95/98/NT 4.0 (KB829558)'封装
将 Jet40SP8_9xNT.exe 复制到容器中,并将此语句添加到 dockerfile
RUN Jet40SP8_9xNT.exe /Q