Docker 用于 Windows & MS-Access 数据库 & Jet.OLEDB.4.0
Docker for Windows & MS-Access database & Jet.OLEDB.4.0
我需要设置一个 docker 容器,其中遗留应用程序需要连接到 MS-Access 2003 数据库。数据库的连接字符串嵌入在应用程序本身中,因此无法更改。所以我也不能将提供者更改为 ACE.OleDb
。
我已经根据……
创建了 docker 个图像
- microsoft/dotnet-framework
- microsoft/windowsservercore
- microsoft/mssql-server-windows-express
…但是当 运行 容器上的遗留应用程序时,我总是得到相同的结果。
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
我还尝试在容器中使用以下命令在 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
有什么想法吗?
已解决:
我找到了一个“Jet 4.0 Service Pack 8 (SP8) for Windows 95/98/NT 4.0 (KB829558)”包。
将 Jet40SP8_9xNT.exe 复制到容器中并将此语句添加到 dockerfile
RUN Jet40SP8_9xNT.exe /Q
我需要设置一个 docker 容器,其中遗留应用程序需要连接到 MS-Access 2003 数据库。数据库的连接字符串嵌入在应用程序本身中,因此无法更改。所以我也不能将提供者更改为 ACE.OleDb
。
我已经根据……
创建了 docker 个图像- microsoft/dotnet-framework
- microsoft/windowsservercore
- microsoft/mssql-server-windows-express
…但是当 运行 容器上的遗留应用程序时,我总是得到相同的结果。
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
我还尝试在容器中使用以下命令在 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
有什么想法吗?
已解决:
我找到了一个“Jet 4.0 Service Pack 8 (SP8) for Windows 95/98/NT 4.0 (KB829558)”包。
将 Jet40SP8_9xNT.exe 复制到容器中并将此语句添加到 dockerfile
RUN Jet40SP8_9xNT.exe /Q