You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境Docker中Access Database无法连接问题排查

在Windows Docker中运行.NET Framework ASP.NET应用时Access数据库连接无响应问题

在Windows环境的Docker中运行基于.NET Framework的ASP.NET应用,通过以下Dockerfile安装Access Database Engine后,执行数据库连接代码时调用con.Open()程序无响应且未抛出任何异常,该问题始于微软更新Microsoft Access Database Engine 2016 Redistributable的安装链接之后。

Dockerfile内容

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2022 AS build
SHELL ["powershell"]

### 32 Bit Access
ADD https://download.microsoft.com/download/3/5/C/35C84C36-661A-44E6-9324-8786B8DBE231/accessdatabaseengine.exe "C:/setup/AccessDatabaseEngine.exe"
RUN start-process -Filepath "C:/setup/AccessDatabaseEngine.exe" -ArgumentList @('/quiet') -Wait;  \
    Remove-Item -Force "C:/setup/AccessDatabaseEngine.exe"

## 64 Bit Access
ADD https://download.microsoft.com/download/3/5/C/35C84C36-661A-44E6-9324-8786B8DBE231/accessdatabaseengine_X64.exe "C:/setup/AccessDatabaseEngine_X64.exe"
RUN start-process -Filepath "C:/setup/AccessDatabaseEngine_X64.exe" -ArgumentList @('/quiet') -Wait;  \
    Remove-Item -Force "C:/setup/AccessDatabaseEngine_X64.exe"

WORKDIR /inetpub/wwwroot

# Start IIS Remote Management and monitor IIS
ENTRYPOINT ["C:\\ServiceMonitor.exe", "w3svc"];

EXPOSE 80

数据库连接代码

//2.  Establish a connection to the database and execute the insert commands
try { 
 var con = new OleDbConnection("PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=newfile.mdb");
 con.Open();
}
catch (Exception ex)
     {                    
         throw ex;
     }

 //3. write one row
 var createTableScript = "INSERT INTO testTable(name, code, remarks) VALUES ('testing name', 1234, 'test remark');";

 // Create a command and execute it
 using (var cmd = new OleDbCommand(createTableScript, con))
 {
     try
     {
         cmd.ExecuteNonQuery();
     }
     catch (Exception ex)
     {                    
         throw ex;
     }
 }

已尝试的解决方案

  • 将Provider从Microsoft.Jet.OLEDB.4.0更换为Microsoft.ACE.OLEDB.16.0或Microsoft.ACE.OLEDB.12.0,均出现con.Open()无响应且无报错的情况;
  • 移除安装命令中的/quiet参数,安装32位和64位Access Database Engine均无报错,但问题仍存在;
  • 使用Microsoft.Jet.OLEDB.4.0作为Provider时,提示该组件未在服务器上注册;
  • 更换基础镜像为aspnet:4.7.2-windowsservercore-ltsc2019,问题未解决;
  • 确认MDB文件无访问限制。

现寻求解决该连接问题的有效方案。

内容的提问来源于stack exchange,提问作者David Geo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 10:52:22