无法从程序集“System.ServiceModel”加载types“System.ServiceModel.Activation.HttpModule”

我正在IIS中运行我的Web项目。

这是一个4.0框架APP。

我有一个Service.svc,当我运行我的应用程序时,我得到这个错误。

“无法从程序集”System.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089“加载types”System.ServiceModel.Activation.HttpModule“

我试过这个 – > aspnet_regiis.exe -iru,我发现在很多论坛,它并没有解决我的问题。

有谁知道另一种方法?

尝试

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

当.NET Framework的多个版本在一台计算机上并行执行时,映射到ASP.NET应用程序的ASP.NET ISAPI版本将确定应用程序使用的是哪种版本的公共语言运行库(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

我在我的机器上安装了Windows 8,而aspnet_regiis.exe工具也没有为我工作。

解决scheme为我工作是张贴在这个链接上,由Neha的答案: System.ServiceModel.Activation.HttpModule错误

到处提到这个解决scheme的问题是通过使用aspnet_regiis.exe重新注册aspnet。 但这不适合我。

虽然这是一个有效的解决scheme(在这里精美地解释)

但它不适用于Windows 8。

对于Windows 8,您需要Windowsfunction并在“.Net Framework 3.5”和“.Net Framework 4.5高级服务”下启用所有function。

谢谢Neha

你好,谢谢你的提问。 解决方法:“无法从程序集”System.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089“加载types”System.ServiceModel.Activation.HttpModule“

在Windowsfunction检查所有的.NET 4高级服务和.NET 3.5

在这里输入图像说明

就像Nicolas Gago一样,我尝试了aspnet_regiis.exe -iru,但没有成功。 function开启后,黄色的屏幕错误消失了。 谢谢;

您可以使用以下命令在Windows Server 2012上使用PowerShell安装这些function:

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

您可以使用以下命令获取function列表:

 Get-WindowsFeature | Format-Table 

在Windows Server 2012中。转到ISS – >模块 – >删除ServiceModel3-0。

好的,终于明白了。

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> 

从服务器pipe理器的“function”节点中,还可以删除通过激活其他某个angular色而安装的.NET Framework 3.5.1function下的一些子项。

例如,删除了WCF激活function如下,我们的网站回来了:

  • [x] .NET Framework 3.5.1function
    • [x] .NET Framework 3.5.1
    • [] WCF激活
      • HTTP激活
      • []非HTTP激活

注意:这不需要我们重新启动。

细节

http://msdn.microsoft.com/en-us/library/hh169179(v=nav.71).aspx

“运行IIS的计算机上有多个版本的.NET Framework时,会发生此错误…”

我意外地将一个网站发布到另一个网站的目录后,我得到了这个错误。 这两个网站有不同版本的.net。 为我修复的是更改应用程序池。 要做到这一点,在IISpipe理器中:

点击网站=>高级设置…(在右边)=>点击应用程序池右边=>一个带有“…”的button应该出现=>select“.NET v4.5 Classic”

如果该应用程序池不起作用,请尝试其他一些应用程序池。

我们在一个网站旁边使用了一个networking服务,当我们发布这个网站的时候,它也会返回这个错误。 我们发现,通过进入IIS并从模块中移除ServiceModel,并从Handler映射中移除svc-Integrated,错误消失了。

删除.Net错误信息中标识的模块,1

在Windows Server 2012中。转到ISS – >模块 – >删除ServiceModel3-0。 (没有号码为我工作)