剛買了個伺服器支援64位的Windows2003於是想爽一下,裝IIS6,只能裝64位的NET frameWork
在XP32位下用VS2005發布兩個網站:
A、基于于SQL2000
B、基於Office Access
在伺服器配置完畢後,A站正常運行,很爽。B站報錯,意思於法串連到資料庫,鬱悶很久。
思考:今天網友提示64位IIS對Ole的支援問題。
由於64位作業系統不支援Microsoft OLE DB Provider for Jet驅動程杏爆也不支援更早的Microsoft Access Driver (*.mdb)方式串連。所以用於 Access 和 Excel 資料庫的 Microsoft OLE DB Provider for Jet 在 64 位元版本中不可用,也就是說,如下兩種連接字串都已經無法正常工作了:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.mappath(db)
"driver=Microsoft Access Driver (*.mdb);DBQ="&Server.MapPath(db)
解決:既然這樣,就只能使用一個辦法,將IIS的運行環境設定為32位:
IIS6上的做法:
1.命令列鍵入:
cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
即設定IIS6允許32位程式運行在64位機器上
2.重新註冊.net frameWorks
%SYSTEMROOT%\Microsoft.NET\framework\v2.0.50727\aspnet_regiis.exe -i
3.完成之後,看Web服務擴充,應該會多出一個32位的asp.net將其設定為允許,缺點:這樣會使整個IIS上的所有網站都以32位相容方式運行 。
IIS7上的做法要簡單很多:
應用程式集區,進階設定-->允許32位應用程式
運行IIS6,運行.net+Access網站看看是否解決
後續:如果還有問題,比如Service Unavailable,恭喜你,你可以學到新知識了。很討厭,看一下錯誤記錄檔,我遇到的是RpcProxy.dll無法載入和無法載入網站/服務的所有 ISAPI 篩選器錯誤。解決方案:開啟iis-->查看“網站”的屬性--->ISAPI 篩選器-->把有向下的紅箭頭的項刪除掉-->重啟iis-->OK 。至此全解決。