1. 程式人生 > >The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

導入 tps engine soc message 解決方法 程序更新 gis expected

Excel Microsoft.Jet.OLEDB.4.0 外部數據庫驅動程序中(1)的意外錯誤

昨天更新系統的bug,據說是微軟要搞事情啊

  刪除以下更新就行:
  win7 KB4041678 KB4041681
  SERVER 2008 R2 KB4041678 KB4041681
  WIN10 KB4041676 KB4041691
  SERVER 2016 KB4041691

使用C#開發的Web系統,其中有項功能,上傳Excel報表,從Excel裏讀取數據,導入到數據庫中。

從10月底開始,使用者反應無法正常使用,報如下錯誤信息:

Unexpected error from external database driver (1)

經查,所有的批量導入都出現這個錯誤,不能導入,因此判斷為是服務器上系統環境發生了改變。

網上查詢,是由於10月10日微軟發布了新的補丁程序,打了此補丁以後,會影響到讀取Excel的引擎。

程序中如果是使用“Provider=Microsoft.Jet.OLEDB.4.0“,則會受影響。

解決辦法:

1、卸載此補丁程序

我從控制面板--->刪除程序,未找到此補丁程序。

2、使用新的引擎

程序改為”Provider=Microsoft.ACE.OLEDB.12.0“

經如此修改後,我有兩個系統,分別部署在A、B服務器上。

1)、A服務器,系統環境Win 2008 R2 64bit English,Office 2010 32bit

在此服務器上,程序更新上去以後,批量導入恢復正常。

2)、B服務器,系統環境Win 2008 R2 64bit English,Office 2010 64bit

在此服務器上,程序更新上去以後 ,批量導入仍然不能使用。報如下錯誤信息:

The ‘Microsoft.ACE.OLEDB.12.0‘ provider is not registered on the local machine.

檢查IIS,應用程序池裏已經啟用了32位程序的使用。

依照網上查詢的下載了新的引擎AccessDatabaseEngine.exe,這個是適用於32位的,又下載了AccessDatabaseEngine_X64.exe(適用於64位)的。

安裝AccessDatabaseEngine.exe,提示服務器上當前安裝的是64位的Office,不能安裝此引擎。

安裝AccessDatabaseEngine_X64.exe,可以正常安裝,但使用批量導入,仍然報錯。

報錯誤信息:The ‘Microsoft.ACE.OLEDB.12.0‘ provider is not registered on the local machine.

考慮到Web程序是在32位的開發環境下開發的,應該使用32位的引擎。

經網上查詢,采用下面方法安裝適用於32位的AccessDatabaseEngine.exe,增加參數 /passive,可以繞開檢查服務器上當前是64位Office 的檢查

運行--->CMD,進入Dos命令行,進入AccessDatabaseEngine.exe所在文件夾,如下:

C:\xxx\AccessDatabaseEngine.exe /passive

安裝成功後,批量導入作業恢復正常

在控制面板裏,查看,安裝後呈現下面情況:

解決方案: 1、網上的方案是:在控制面板>程序>程序和功能>已安裝更新中,找到對應的兩個補丁,進行卸載。不同系統對應不同的補丁,具體可以參考:http://www.cnblogs.com/net-god/p/7661313.html 2、微軟給出的解決方案是:下載新的驅動引擎(Microsoft Access Database Engine 2010 Redistributable),更改Provider=Microsoft.Jet.OLEDB.4.0為Provider=Microsoft.ACE.OLEDB.12.0。 參考資料: 1、Excel Microsoft.Jet.OLEDB.4.0 外部數據庫驅動程序中(1)的意外錯誤 2、導入表的時候提示“外部數據庫驅動程序(1)中的意外錯誤”解決方法 3、外部數據庫驅動程序(1)中的意外錯誤 2、Unexpected error from external database driver (1) 3、Error in Windows update KB4041681 - Unexpected error from external database driver (1)

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.