无法从程序集'System.ServiceModel加载类型'System.ServiceModel.Activation.HttpModule'

时间:2013-03-28 17:58:17

标签: iis service svc

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

这是一个4.0 Framework APP。

我有一个Service.svc,当我运行我的应用程序时出现此错误。

  

“无法从中加载类型'System.ServiceModel.Activation.HttpModule'   assembly'System.ServiceModel,Version = 3.0.0.0,Culture = neutral,   公钥= b77a5c561934e089' “

我试过这个 - >我在很多论坛找到的aspnet_regiis.exe -iru并没有解决我的问题。

有没有人知道另一种方法?

15 个答案:

答案 0 :(得分:153)

尝试

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

答案 1 :(得分:48)

我的机器上安装了Windows 8,而aspnet_regiis.exe工具也不适用于我。

对我有用的解决方案发布在此链接上,由Neha回答:System.ServiceModel.Activation.HttpModule error

  

通过使用aspnet_regiis.exe重新注册aspNet,提到了这个解决方案的问题。但这对我没用。

     

虽然这是一个有效的解决方案(正如这里所说的那样精彩)

     

但它无法与Windows 8一起使用。

     

对于Windows 8,您需要Windows功能并启用" .Net Framework 3.5"和#34; .Net Framework 4.5高级服务"。

     

谢谢Neha

答案 2 :(得分:34)

您好,感谢您的提问; 要解决:“无法从程序集'System.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'”

加载类型'System.ServiceModel.Activation.HttpModule'

在Windows功能中,检查所有.NET 4高级服务& .NET 3.5

enter image description here

就像Nicolas Gago一样,我尝试了aspnet_regiis.exe -iru,但它没有用。功能打开后,黄屏错误消失了。感谢;

答案 3 :(得分:9)

您可以使用以下命令在PowerShell 2012上安装这些功能:

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

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

Get-WindowsFeature | Format-Table

答案 4 :(得分: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>

答案 5 :(得分:4)

在Windows Server 2012中。转到ISS - &gt;模块 - &gt;删除ServiceModel3-0。

答案 6 :(得分:4)

从服务器管理器的“功能”节点,您还可以删除通过激活某些其他角色而安装的.NET Framework 3.5.1功能下的某些子项。

例如,删除了WCF激活功能,如下所示,我们的网站又回来了:

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

注意:我们不需要重启。

答案 7 :(得分:1)

详细

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

&#34;当运行IIS的计算机上有多个版本的.NET Framework时,可能会发生此错误...&#34;

答案 8 :(得分:1)

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

点击网站=&gt;高级设置...(右侧)=&gt;点击Application Pool =&gt;右侧带有“...”的按钮应该出现=&gt;选择“.NET v4.5 Classic”

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

答案 9 :(得分:0)

我们在网站旁边使用网络服务,当我们发布网站时,它返回相同的错误。我们发现,通过进入IIS并从模块中删除ServiceModel以及从Handler Mappings中删除svc-Integrated,错误就消失了。

答案 10 :(得分:0)

我来晚了,希望对您有所帮助...。这是IIS 8.0的已知问题

  

解决方案是从IIS管理器中删除3.x模块和处理程序。如果要将它们保留在applicationHost.config中,则可以在应用程序或站点级别将其删除。但是我想从applicationHost.config中删除它们。请执行以下步骤:

     

在IIS管理器中,单击“计算机名称”节点。   在“功能视图”中,双击“模块”。   找到“ ServiceModel”并将其删除。   解决IIS 8错误的图片1:无法加载类型“ System.ServiceModel.Activation.HttpModule”

     

返回计算机名称节点的“功能视图”,双击“处理程序映射”。   找到“ svc-Integrated”并将其删除。   解决IIS 8错误的图片2:无法加载类型“ System.ServiceModel.Activation.HttpModule”

答案 11 :(得分:0)

您可能会更改IIS功能设置。通过以管理员身份运行(对于Windows Server 2008)并通过打开命令来解决的简单步骤 C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -iru 这将设置ASP.Net 4.0,然后通过命令重置IIS iisreset

参考: https://support.plesk.com/hc/en-us/articles/213392249-ASP-website-shows-error-Could-not-load-type-System-ServiceModel-Activation-HttpModule-from-assembly

答案 12 :(得分:0)

出现此问题的原因是 Windows Process Activation Service (WAS) 的 Applicationhost.config 文件包含一些与 .NET Framework 4.0 不兼容的标签。

根据您的环境,您有 4 种解决方法来解决此问题:

  • 正在更新 Applicationhost.config。
  • 执行 ASP.NET IIS 注册。
  • 打开命名管道激活功能。
  • 从 IIS 中删除 ServiceModel 3.0
<块引用>

Solving Could not load type system.servicemodel.activation.httpmodule from assembly System.ServiceModel

中查看每个解决方法的详细步骤

答案 13 :(得分:-1)

删除.Net错误消息中标识的模块,1投票

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

答案 14 :(得分:-1)

开始->运行-> c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru