64位元Windows 2003下面設定好IIS後,執行ASP頁面,如果裡面有連接access資料庫的程式碼,就會出現錯誤警告複製程式碼如下:
ADODB.Connection 錯誤'800a0e7a'
未找到提供者。該程式可能未正確安裝。
/連結網站內容管理資料庫.asp,行2
原因:IIS是以64位元方式來運作的,它只能載入64位元模組,不能載入32位元模組。而存取access資料庫的jet引擎只有32位的,沒有64位,因此無法被IIS載入。
解決思路:讓IIS以32位元方式運行,從而可以呼叫32位元的jet引擎
解決方法:在命令列視窗中輸入
cscript C:/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
上面方法的負面效應:因為IIS被改成以32位元方式運行,所以它只能載入32位元模組。如果改之前,IIS載入了其他64位元的模組,則改之後就無法載入這個模組了。如果想繼續使用這個模組的功能,只能尋找這個模組的32位元版本並載入。
如果希望IIS重新以64位元方式運行,可以輸入
cscript C:/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0