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

Nic*_*ago 87 iis service svc

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

这是一个4.0 Framework APP.

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

"无法从程序集'System.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'加载类型'System.ServiceModel.Activation.HttpModule'

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

有谁知道另一种方法?

小智 155

试试吧

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru
Run Code Online (Sandbox Code Playgroud)

当多个版本的.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

  • 这在今天仍然有用.我希望现在MS能解决这个问题.就我而言,我们已经有一个使用ASP.net 4.0框架运行的IIS应用程序.虽然不完全确定客户除了升级到4.5.1以及其他一些更新之外做了什么,但有必要重新运行此命令,这是我们的支持工程师没有想到的,因为他们没有必要这样做它已经有一段时间了. (2认同)

scu*_*Fun 49

我在我的机器上安装了Windows 8,aspnet_regiis.exe工具对我也没有用.

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

无处不在这个解决方案的问题是通过使用aspnet_regiis.exe重新注册aspNet.但这对我不起作用.

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

但它不适用于Windows 8.

对于Windows 8,您需要Windows功能并启用".Net Framework 3.5"和".Net Framework 4.5 Advanced Services"下的所有内容.

谢谢Neha

  • 对于Windows Server 2012,此建议也是必需的. (4认同)
  • 你不需要启用所有东西,只需要激活Http! (2认同)

Cat*_*tto 36

您好,感谢您的提问; 要解决:"无法从程序集'System.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089''加载类型'System.ServiceModel.Activation.HttpModule'

在Windows功能中,检查所有.NET 4 Advanced Services和.NET 3.5

在此输入图像描述

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

  • 这在Windows Server 2012 R2中对我有用 - 谢谢! (3认同)
  • 在Windows 10中为我工作. (3认同)

Pre*_*hts 10

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

Install-WindowsFeature -Name  NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature -Name  NET-WCF-HTTP-Activation45 -IncludeAllSubFeature
Run Code Online (Sandbox Code Playgroud)

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

Get-WindowsFeature | Format-Table
Run Code Online (Sandbox Code Playgroud)


Nic*_*ago 6

好,终于明白了。

更改此行 %windir%\System32\inetsrv\Config\ApplicationHost.config

<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
Run Code Online (Sandbox Code Playgroud)

<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />
Run Code Online (Sandbox Code Playgroud)

如果这还不够

将以下行添加到Web.config

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)


for*_*reh 5

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

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

  • [x] .NET Framework 3.5.1 特性
    • [x] .NET 框架 3.5.1
    • [ ] WCF 激活
      • [ ] HTTP 激活
      • [ ] 非 HTTP 激活

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