Windows 2008 R2 64位 運行.NET Framework 4.0網站的錯誤總結
最近在單位新伺服器上搭建基於.NETFramework4.0的網站,結果一切都安裝OK後,網站怎麼都運行不起來(但是基於.NET2.0的網站能夠運行起來,很是奇怪),除了簡單的500錯誤外沒有任何線索。然後打開IIS7.5的跟蹤日誌,發現提示錯誤為「ISAPIMODULE 不是有效的win32程序」。通過分析發現,原來是因為我們的網站是基於x86平台開發的,對應的ASP.NET4.0應用程序池設置了「啟用32位管理」,所以網站會調用基於x86的isapi。可是在安裝.NETFramework4時本身是包含32位和64位的,為什麼會有如此提示呢?後來只能一個一個卸載,爭取復原原始環境。
伺服器背景:Windows 2008 R2 Standard 64bit(已安裝TFS2010,因為伺服器資源短缺,只能是web和tfs共用一台伺服器)。
操作步驟:
- 卸載IIS,因為isapi有問題,我們猜測是iis有問題——成功卸載
- 重新安裝IIS——出現錯誤
提示:錯誤: 嘗試安裝 IIS 管理控制台 失敗,錯誤代碼為 0x80070643。 安裝時發生嚴重錯誤
後來通過在網上多方查找,原來是因為和WAS (Windows Process Activation Service)服務有關,必須先卸載該功能才能安裝IIS。
這時,我突然覺得.NET4.0 32bit 運行有問題可能真的和這個服務有關(因為之前安裝的2008伺服器都沒問題,只有這台不知道誰給裝上了這個WAS)。
於是在「服務管理器--》功能--》刪除功能」中,找到WAS,並刪除它,然後重新安裝IIS,安裝成功。
3. 重新安裝.NET 4.0 Framework
4. 部署網站
5. 修改應用程序池,啟用Win32,網站運行成功。
總結:
我認為這次之所以失敗,很有可能是因為某個服務導致的.NET Framework安裝順序不正確,結果isapi.dll識別不出來。如果遇上此類問題,最好還是重新安裝IIS,然後重新設置。通過aspnet_regiis的方法,有時可以,但有時不成功
--------------------------------------------------------------------------
再次總結:
今天有了新的發現,今天重新安裝WSS3.0(Sharepoint)後,網站又不能用了,而且IIS的默認站點也被WSS給刪除了,看來應該是它搗的鬼,它的安裝修改了IIS的設置,網站下的應用程序出現了問題,以後得要多注意。我現在新建了一個默認網站,修改WSS的埠,能夠基本運行,但是有很多小問題,希望不要再重裝IIS了
推薦閱讀: