Windows 2008 R2 64位 運行.NET Framework 4.0網站的錯誤總結

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共用一台伺服器)。

操作步驟:

  1. 卸載IIS,因為isapi有問題,我們猜測是iis有問題——成功卸載
  2. 重新安裝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了

推薦閱讀:

精讀 《Nestjs 文檔》
一個網站使用兩個php框架好嗎?

TAG:網站 | .NET | 錯誤 | 總結 | Windows | 64位 | 運行 | Framework |