简体   繁体   English

Docker for Windows & MS-Access 数据库 & Jet.OLEDB.4.0

[英]Docker for Windows & MS-Access database & Jet.OLEDB.4.0

I need to setup a docker container in which a legacy application needs to connect to an MS-Access 2003 DB.我需要设置一个 docker 容器,其中一个遗留应用程序需要连接到一个 MS-Access 2003 DB。 The connectionstring to the DB is embedded in the application itself and therefore cannot be changed.到 DB 的连接字符串嵌入在应用程序本身中,因此无法更改。 So I cannot change the provider to be ACE.OleDb either.所以我也不能将提供者更改为ACE.OleDb

I have created docker images based on …我创建了基于…的 docker 图像

  • microsoft/dotnet-framework微软/dotnet 框架
  • microsoft/windowsservercore微软/windowsservercore
  • microsoft/mssql-server-windows-express微软/mssql-server-windows-express

… but I always get the same result when running the legacy application on the container. …但在容器上运行旧版应用程序时,我总是得到相同的结果。

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine. 'Microsoft.Jet.OLEDB.4.0' 提供程序未在本地计算机上注册。

I also tried to register the msjetoledb40.dll in SysWow64 with the following command in the container ...我还尝试使用容器中的以下命令在 SysWow64 中注册msjetoledb40.dll ...

C:\Windows\SysWow64\regsvr32 Msjetoledb40.dll C:\Windows\SysWow64\regsvr32 Msjetoledb40.dll

... but does not seem to work either. ...但似乎也不起作用。

I have also installed the Microsoft Access Database Engine Redistributable (2007, 2010 & 2016) in 32 and 64 bit (AccessDatabaseEngine.exe & AccessDatabaseEngine_X64.exe) but always get the same error as mentioned above.我还安装了 32 位和 64 位(AccessDatabaseEngine.exe 和 AccessDatabaseEngine_X64.exe)的 Microsoft Access Database Engine Redistributable(2007、2010 和 2016),但总是遇到与上述相同的错误。

2007 Office System Driver: Data Connectivity Components 2007 Office System 驱动程序:数据连接组件

Microsoft Access Database Engine 2010 Redistributable Microsoft Access 数据库引擎 2010 可再发行组件

Microsoft Access Database Engine 2016 Redistributable Microsoft Access 数据库引擎 2016 可再发行组件

Any ideas?有任何想法吗?

SOLVED:解决了:

I found a ' Jet 4.0 Service Pack 8 (SP8) for Windows 95/98/NT 4.0 (KB829558) ' package.我找到了一个“ Jet 4.0 Service Pack 8 (SP8) for Windows 95/98/NT 4.0 (KB829558) ”包。

Copied the Jet40SP8_9xNT.exe to the container and added this statement to the dockerfileJet40SP8_9xNT.exe复制到容器中,并将这条语句添加到dockerfile

RUN Jet40SP8_9xNT.exe /Q

上面提到的链接不再存在,有人可以粘贴工作链接..

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM