Windows 2008 / Windows 7 x64: The ‘Microsoft.Jet.OLEDB.4.0’ provider is not registered on the local machine. 在服务器上部署项目的时候遇到如下错误: The ‘Microsoft.Jet.OLEDB.4.0′ provider is not registered on the local ,服务器是 win2008 64位的,找了半天原因,网上说最多是编译的时候选择cpu类型,选用32位的也就是那个x86,试了一下,不行。

error1

导致这个错误主要有几个原因:

1.服务器上没有装 ms excel 的驱动 不存在dll 和组件Microsoft.Jet.OLEDB.4.0 。

2.IIs中应用程序池设置的是64模式.那个Microsoft.Jet.OLEDB.4.0是32位的。

3.Microsoft.Jet.OLEDB.4.0组件被破坏了。

写到这里如果能自行解决那OK没有问题不用往下看了。

如果还是解决不了你的问题,那就先捐赠一点儿吧往下看。

根因与三种解决方案

Microsoft.Jet.OLEDB.4.0(Access/Excel 老驱动)只有 32 位版本,64 位进程根本加载不了,这就是报错的本质。三条路任选其一。

  • IIS 场景:应用程序池"启用 32 位应用程序"设为 True,整个 w3wp 进程切回 32 位;
  • WinForm/控制台:项目编译平台改为 x86,让进程以 32 位运行;
  • 推荐的正道:改用 ACE OLEDB 12.0 提供程序,安装 Microsoft Access Database Engine 可再发行包,注意其位数必须与进程位数一致;
  • 新项目建议直接上 EPPlus、NPOI 等托管库操作 Excel,彻底摆脱驱动依赖。

💰 此内容为付费阅读 请先登录