虛擬主機ASP開啟 IIS 中32位元程式支援 ADODB.Connection

開啟 IIS 中的 32 位元程式支援 ADODB.Connection

x64 IIS7, IIS7.5 預設值沒有支援 MDAC OLEDB, ADODB.Connection 找不到工作處理程序。

出現錯誤訊息 ADODB.Connection 錯誤 800a0e7a 找不到提供者。它可能未被正確安裝。因為預設下沒有啟動執行 32bit 程式,而 Microsoft.Jet.OLEDB.4.032bit 的程式所以需要啟用相關選項。所以在 x64 位元的 IIS7 中使用 32bit, ASP + Access 的網站,需要選擇進階設定啟用 32 位元應用程式設定為 True

DefaultAppPool 按下 [進階設定]、將啟用 32 位元應用程式設置為 True


虛擬目錄設定

寫入權限:IIS 暫存目錄,設定 IIS_IUSRS 群組有寫入權限。ACCESS 資料夾(資料庫目錄)設定 IUSRS 帳戶有寫入權限。

在工作管理員中可以看到到不同工作處理程序在執行,其中 w3wp.exe64 位元的工作處理程序,而另外 w3wp.exe *32 則是 32 位元的工作處理程序。


適用於 Windows XP ProIIS 版本 5.1 適用於 Windows Server 2003IIS 版本 6.0 適用於 Windows VistaWindows Server 2008IIS 版本 7.0 適用於 Windows 7Windows Server 2008 R2IIS 7.5 版 適用於 Windows 8Windows Server 2012IIS 版本 8.0 適用於 Windows 8.1Windows Server 2012 R2IIS 版本 8.5 IIS 版本 10 適用於 Windows 2016Windows 10


Connection String

連接 Access 資料庫 (accdb) 的連接字串,出現的錯誤訊息 ADODB.Command 錯誤 800a0e7a 找不到提供者。它可能未被正確安裝。如果使用 Access 2007、20102013Access 資料庫,連線字串需要更改。但如果使用在一般租賃虛擬主機例如 Windows 2003 主機,得考量可能無法自行順利安裝驅動程式。

Access 2003 連接字串(實體路徑)

"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & Server.MapPath("Access.mdb")

Access 2007/2010/2013 連接字串(實體路徑)

"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " & Server.MapPath("Access.accdb")

下載驅動程式(資料連線元件)

安裝元件可提供非 Microsoft Office 應用程式用來讀取 2007 Microsoft Office system 檔案中的資料。

https://www.microsoft.com/zh-tw/download/details.aspx?id=23734

Modification in