IIS6+64位系統 VS 32位APP 在64位機器上運行32位版本的ASP.NET 2.0.****

    上64位的系統現在是越來越多了,特別是在服務器上,64位系統的優勢不言而喻。但由於歷史的原因,很多時候我們的網絡APP中都保留有32位的模塊,這樣的程序如果要在IIS7上運行,很簡單,創建一個單獨的支持32位模式的應用池就可以了。但要在64位的IIS6上運行的時候,情況就要複雜些,本文將對此做一些介紹。

 

    就32位支持來說,IIS6與IIS7最大的不同是,在IIS6中,整個站點(Site)只能運行在一種模式下:要麼32位,要麼64位,這句話是什麼意思呢?在C:/Windows/Microsoft.NET下我們可以看到兩個目錄Framework和Framework64,往裏走的話,會發現二者的目錄結構幾乎完全一樣(唯一的區別是1.0.3075只存在於Framework,因爲這個版本的.net只支持32位模式),顧名思義,前者支持32位模式,後者支持64位模式,一個站點在一個時間點只能載入其中一套程序,也就是說你必需在二者之間做出選擇。這個選擇會影響到這個站點下所有的APP,所以,在操作之前,務必三思而後行!一個純64位程序在32位模式下肯定會損失性能的。

 

    然後,在IIS管理器中,右鍵點擊Default Web Site,點擊“屬性”,打開“Home Directory"頁,點擊”Configuration",這裏我們可以看到後綴的映射表,注意看一下Executable Path一欄就會發現,其中有不少都指向了C:/Window/Microsoft.NET/下的其中一個路徑,如果是Framework,說明當前站點運行在32位模式下,否則,就運行在64位模式下。

 

    不用說,如果站點運行在64位模式下,而我們又打開了一個包含了32位程序的APP,肯定會出問題

    下面一個例子:在64位機器上運行32位版本的ASP.NET 2.0.****
      C:/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0
      C:/Windows/Microsoft.NET/Framework64/v2.0.40607/aspnet_regiis.exe -ua
      iis重啓命令 iisreset


      C:/Windows/Microsoft.NET/Framework64/v2.0.40607/aspnet_regiis.exe -i -enable
      C:/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
      C:/Windows/Microsoft.NET/Framework/v2.0.40607/aspnet_regiis.exe -i -enable 
      iis重啓命令 iisreset

 

    命令看上去很嚇人(-u是要卸載ASP.NET),不過不用擔心,後面-i就是安裝了,而且安裝程序會自動地在IIS中將ASP.NET用到的後綴名映射到C:/Window/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll。它怎麼知道該用64位還是32位呢?呵呵,注意上面我們使用的是32位的aspnet_regiis,自然就是鏈到32位的dll了。

 

    上面這兩步的順序不能顛倒,否則就會出現一些奇怪的錯誤。比如在我試的過程中,有一段時間整個站點都Service Unavailable了(HTTP 503),原因是我先在64位下用64位的aspnet_regiis.exe把IIS和64位的.NET關聯上,然後才用adsutil.vbs把模式改回32位(stupid),結果系統在32位模式下發現載入的DLL全是64位的,就報503錯了,這時候如果查看一下事件管理器(在“我的電腦”上點擊右鍵,點擊“管理”),就會發現W3SVC-WP報了很多錯,錯誤信息裏可以看到SAPI Filter 'C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727/aspnet_filter.dll' could not be loaded due to a configuration problem. 之類的。如果使用了MVC框架,那麼下面還有一步就是去手動註冊mvc後綴,這一步本身沒什麼可說的,只要映射到32位的aspnet_isapi就可以了。

 

     說到底,兄弟們,還是升級到IIS7吧,一個版本之差,真的比iis6要強多了

發佈了45 篇原創文章 · 獲贊 5 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章