今天把部門的主頁按照以往的步驟放置到新的服務(wù)器上,asp竟然始終無法運行,在原來的機器上運行正常,翻來覆去的調(diào)試,就是找不到原因。用Google搜索發(fā)現(xiàn)問題可能是服務(wù)器本身出現(xiàn)的問題,新服務(wù)器上裝的是正版的windows 2003 server 64bit的,是不是64位的系統(tǒng)和32位的不兼容,按照以下的方法試了一下,運行正常了,真長見識。不由得感嘆,學(xué)無止境呀!

從網(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