2013-03-28 53 views
77

我正在IIS中運行我的Web項目。無法從程序集'System.ServiceModel加載類型'System.ServiceModel.Activation.HttpModule'

它是一個4.0框架APP。

我有一個Service.svc,當我運行我的應用程序時出現此錯誤。

「無法從 組件加載類型System.ServiceModel.Activation.HttpModule' 'System.ServiceModel,版本= 3.0.0.0,文化=中性 公鑰= b77a5c561934e089'」

我試過 - > aspnet_regiis.exe -iru,我在很多論壇中發現它並沒有解決我的問題。

有誰知道另一種方法?

回答

139

.NET Framework的多個版本的單個計算機上執行並排側嘗試用

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru 

,的ASP.NET ISAPI版本映射到一個ASP.NET應用程序確定應用程序使用哪種版本的公共語言運行庫(CLR)。

以上命令將安裝與Aspnet_regiis.exe關聯的ASP.NET版本,並且只在IIS中註冊ASP.NET。

https://support.microsoft.com/en-us/help/2015129/error-message-after-you-install-the--net-framework-4-0-could-not-load

+1

我們也可以用戶CMD:輸入地址,cd \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319,然後安裝它:aspnet_regiis.exe -iru命令,接下來最好是通過iisreset重啓ISS – Ali

+2

今天仍然有幫助。現在我希望MS能夠解決這個問題。就我而言,我們已經有了一個使用ASP.net 4.0框架的正在運行的IIS應用程序。雖然並不完全確定客戶除了升級到4.5.1以及其他更新之外,還有必要重新運行此命令,這是我們的支持工程師沒有想到的,因爲他們不需要做它有一段時間。 – ebol2000

+0

這對我有用。非常感謝 –

4

好吧,終於明白了。

改變這一行中System32/ApplicationHost.config

<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 

<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" /> 

如果這還不夠

這下面的行添加到Web.config

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 
+0

改變對ApplicationHost.config爲Windows Server 2016工作。所有其他答案都沒有幫助。謝謝! – Tobias

+0

這節省了我的感謝 – Lijo

46

我在我的機器上安裝了Windows 8,而aspnet_regiis.exe工具也沒有爲我工作。

爲我工作的解決方案通過NEHA張貼此鏈接,就回答:System.ServiceModel.Activation.HttpModule error

到處問題該解決方案被提到重新註冊ASPNET使用ASPNET_REGIIS.EXE。但這不適合我。

雖然這是一個有效的解決方案(如這裏精美的解釋)

但它並沒有與Windows 8

工作對於Windows 8,你需要Windows功能和「.NET Framework 3.5的支持下一切「和」.Net Framework 4.5高級服務「。

由於NEHA

+4

此建議對於Windows Server 2012也是必需的。 –

+0

感謝您一起傳遞此信息。很好的解決了Win 8.1的問題 – JJMpls

+0

感謝分享。這對我來說就像一個魅力 – devC

4

在Windows服務器2012年進入國際空間站 - >模塊 - >刪除ServiceModel3-0。

29

你好謝謝你的問題; 要解決:「未能從程序集加載類型「System.ServiceModel.Activation.HttpModule‘System.ServiceModel,版本= 3.0.0.0,文化=中性公鑰= b77a5c561934e089’」

在Windows功能檢查所有的.NET 4個高級服務& .NET 3.5

enter image description here

就像尼古拉斯·加戈我試圖ASPNET_REGIIS.EXE -iru,但沒有奏效。功能開啓後,黃色屏幕錯誤消失。謝謝;

+3

這在Windows Server 2012 R2中適用於我 - 謝謝! – NickG

+0

與Windows 8相同。謝謝! – NikitaBaksalyar

+0

這個修復了我的Win8。謝謝! +1 – Darbio

-1

刪除被識別模塊「可當有運行IIS ...在計算機上的.NET Framework的多個版本出現此錯誤」在.NET錯誤消息,1票下跌

在Windows服務器2012年進入國際空間站 - >模塊 - >刪除ServiceModel3-0。 (無編號工作對我來說)

2

從服務器管理器的功能節點,也可以去除一些下由一些其他角色的激活安裝.NET Framework 3.5.1功能的子項。

例如,去掉了WCF激活功能如下,我們的網站回來:

  • [X]的.NET Framework 3.5.1功能
    • [X] .NET Framework 3.5的0.1
    • [] WCF激活
      • [] HTTP激活
      • []非HTTP激活

注:這並不需要重新啓動我們。

0

我得到這個錯誤後,我意外地公佈一個網站到另一個網站的目錄。這兩個網站有不同版本的.net。爲我修復的是更改應用程序池。要做到這一點,在IIS管理器:

點擊網站=>高級設置...(右側)=>點擊應用程序池=>一個按鈕的右側有「...」應該出現= >選擇「.NET V4.5經典」

如果該應用程序池不能正常工作,嘗試一些其他的。

0

我們在一個網站旁邊使用了網絡服務,當我們發佈網站時,它返回相同的這個錯誤。我們發現通過進入IIS並從模塊中移除ServiceModel以及從Handler映射移除svc-Integrated,錯誤消失了。

8

您可以在Windows Server 2012上使用PowerShell使用下面的命令安裝這些功能:

Install-WindowsFeature -Name NET-Framework-Features -IncludeAllSubFeature 
Install-WindowsFeature -Name NET-WCF-HTTP-Activation45 -IncludeAllSubFeature 

你可以得到的功能列表使用下面的命令:

Get-WindowsFeature | Format-Table 
相關問題