從網(wǎng)上搜索發(fā)現(xiàn)是64位的iis無法兼容32的jet引擎,需要讓iis以32為的方式運行,只要在命令行輸入一下命令
cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
之后IIS就會以32位方式來運行了。運行命令后網(wǎng)站果然可以正常運行了
另外:網(wǎng)上還提到如果運行了asp.net模塊當iis以32為方式運行時也必須加載32的asp.net擴展,否則iis無法正常運行,因為64位的IIS無法加載32位的ASP.Net模塊,32位的IIS也無法加載64位的ASP.Net模塊.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
癥狀:64位Windows 2003下面配置好IIS后,運行ASP頁面,如果里面有連接access數(shù)據(jù)庫的代碼,就會出現(xiàn)錯誤警告:
ADODB.Connection 錯誤 '800a0e7a'
未找到提供程序。該程序可能未正確安裝。
/連接“網(wǎng)站內(nèi)容管理”數(shù)據(jù)庫.asp,行 2
原因:IIS是以64位方式來運行的,它只能加載64位模塊,不能加載32位模塊。而訪問access數(shù)據(jù)庫的jet引擎只有32位的,沒有64位,因此無法被IIS加載。
解決思路:讓IIS以32位方式運行,從而可以調(diào)用32位的jet引擎
解決方法:在命令行窗口輸入
cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
上面方法的負面效應(yīng):因為IIS被改成以32位方式運行,所以它只能加載32位模塊。如果改之前,IIS加載了其他64位的模塊,則改之后就無法加載這個模塊了。如果想繼續(xù)使用這個模塊的功能,只能尋找這個模塊的32位版本并加載。
如果希望IIS重新以64位方式運行,可以輸入
cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0