[IIS]同一個 IIS 處理序中不能執行兩個不同版本的 ASP.NET

[IIS]同一個 IIS 處理序中不能執行兩個不同版本的 ASP.NET

今天同事問一個IIS掛掉的問題,事件顯示器中的錯誤訊息如下,

同一個 IIS 處理序中不能執行兩個不同版本的 ASP.NET。請使用 IIS 系統管理工具重新設定伺服器使用不同的處理序來執行應用程式。
請在 http://go.microsoft.com/fwlink/events.asp 查看說明及支援中心,以取得其他資訊。

 

執行網頁時,就發生如下的錯誤,

伺服器應用程式無法使用
您嘗試在此 Web 伺服器上存取的 Web 應用程式目前無法使用。請按 Web 瀏覽器中的 [重新整理] 按鈕,再試一次。
系統管理員注意: Web 伺服器的應用程式事件記錄檔中的錯誤訊息詳細說明了這項特定要求失敗原因。請檢閱這個記錄項目,查看造成錯誤的原因為何。

 

其實事件顯示器的訊息已說的為何會造成錯誤。

是因為同一個應用程式集區,被不同.NET Framework版本的虛擬目錄應用程式所使用。

所以當第1個.net 1.1的應用程式在run時,另一個.net 2.0的應用程式再run起來就會發生「伺服器應用程式無法使用」。

而這時,應用程式集區通常就會掛掉,或是另一個導致另一個應用程式卡住,而造成死結,事件顯示器會再出現如下的警告訊息,

因為下列理由 ISAPI 'c:\windows\microsoft.net\framework\v1.1.4322\aspnet_isapi.dll' 報告自己的運作不正常: '偵測到死結'

 

這問題通常會發生在「DefaultAppPool」這個應用程式集區,因為建立虛擬目錄時,設定好.NET Framework的版本後,忘了更改使用的應用程式集區。

解法就是一個應用程式集區只能使用同一個版本的.NET Framework,所以在建立虛擬目錄時,除了設定.NET Framework的版本外,還要選擇正確的應用程式集區。

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^