狀況
請考慮下列案例。您安裝.NET Framework 的 4.0。然後,您安裝較早版本的.NET Framework 中,或您啟用.NET 3.0 WCF HTTP 啟動。在這個案例中,您可能會收到下列錯誤訊息當您執行應用程式時,裝載網際網路資訊服務 (IIS):
無法從組件載入型別 'System.ServiceModel.Activation.HttpModule' ' System.ServiceModel、 版本 = 3.0.0.0,文化特性 = 中性,PublicKeyToken = b77a5c561934e089'。
描述: 目前的 web 要求執行期間發生未處理的例外狀況。請檢閱堆疊追蹤,如需詳細資訊,有關錯誤及其產生程式碼中的位置。
例外狀況詳細資料: System.TypeLoadException: 無法從組件載入型別 'System.ServiceModel.Activation.HttpModule' ' System.ServiceModel、 版本 = 3.0.0.0,文化特性 = 中性,PublicKeyToken = b77a5c561934e089'。
原因
Applicationhost.config 檔案 Windows 處理序啟動服務 (WAS) 具有下一節定義,而且這一節是.NET Framework 的 4.0 與不相容,就會發生這個問題:
< 新增名稱 ="ServiceModel"type="System.ServiceModel.Activation.HttpModule,System.ServiceModel,版本 = 3.0.0.0,文化特性 = 中性,PublicKeyToken = b77a5c561934e089"指定條件 ="managedHandler"/ >
本章節的定義應該如下:
< 新增名稱 ="ServiceModel"type="System.ServiceModel.Activation.HttpModule,System.ServiceModel,版本 = 3.0.0.0,文化特性 = 中性,PublicKeyToken = b77a5c561934e089"指定條件 ="managedHandler,runtimeVersionv2.0"/ >
注意您可以找到 Applicationhost.config 檔案中的下列位置:
%windir%\system32\inetsrv\config
解決方案
若要解決這個問題,請執行下列命令列:
aspnet_regiis.exe /iru
Aspnet_regiis.exe 檔案可以在下列位置找到:
%windir%\Microsoft.NET\Framework\v4.0.30319
(在 64 位元電腦) 上的 %windir%\Microsoft.NET\Framework64\v4.0.30319