无法从程序集“ System.ServiceModel”中加载类型“ System.ServiceModel.Activation.HttpModule”


88

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

这是一个4.0 Framework APP。

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

“无法从程序集'System.ServiceModel,版本= 3.0.0.0,区域性=中性,PublicKeyToken = b77a5c561934e089'中加载类型'System.ServiceModel.Activation.HttpModule'”

我尝试了-> aspnet_regiis.exe -iru,我在很多论坛中都发现了它,但并没有解决我的问题。

有人知道另一种方法吗?

Answers:


156

试试看

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/zh-CN/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
Harry Sarshogh

2
今天仍然证明这很有用。我本来希望MS可以解决此问题。就我而言,我们已经有一个使用ASP.net 4.0框架的正在运行的IIS应用程序。尽管不能完全确定客户除了升级到4.5.1和进行了许多其他更新外还做了什么,但是有必要重新运行此命令,但我们的支持工程师没有想到这一点,因为他们不必这样做它一段时间。
ebol2000

感谢你的回答。但是,这对我没有用。但是在Windows功能中启用“ .Net Framework 3.5”和“ .Net Framework 4.5”下的所有功能(如下面的答案所述)可以解决问题。
Ozgur Bar

我有一个Windows Server 2008 x64 R2,它工作正常,但是一个月后,我收到了此错误,我发现了此信息并在服务器上运行了此命令,并修复了我的问题。我从来没有在服务器上安装或更新任何东西,现在的问题是为什么会发生呢?这是正常现象还是黑客类型或类似的东西?
motevalizadeh

1
它的工作对我来说只有当我跑aspnet_regiis.exe -iruv4.0.XXXXX v2.0.XXXXX版本!
1_bug

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


4
Windows Server 2012也需要此建议
Chris O

感谢您的传递。为了在Win 8.1
JJMpls 2014年

2
您无需启用所有功能,只需启用Http激活!
MariusStănescu2014年

马吕斯所说的,只是.NET 3.5功能下的Http激活
C. Ridley

You&Neha救了我剩下的头发
Karim AG

36

你好,谢谢你的问题;解决:“无法从程序集“ System.ServiceModel,版本= 3.0.0.0,区域性=中性,PublicKeyToken = b77a5c561934e089”中加载类型“ System.ServiceModel.Activation.HttpModule””

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

在此处输入图片说明

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


3
这在Windows Server 2012 R2中对我有用-谢谢!
NickG 2014年

与Windows 8相同。谢谢!
NikitaBaksalyar 2014年

这为我修复了Win8。谢谢!+1
达比奥(Darbio)

1
当我将服务托管在IIS中时,只需要启用“ Http激活”即可。对我有用,谢谢。
Dhanuka777

3
在Windows 10中为我工作。–
Justin

10

您可以使用以下命令在具有Powershell的Windows Server 2012上安装这些功能:

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

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

Get-WindowsFeature | Format-Table

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" />

<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>

更改ApplicationHost.config可在Windows Server 2016中使用。所有其他答案都无济于事。谢谢!
Tobias

5

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

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

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

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




1

我不小心将一个网站发布到另一个网站的目录后,出现了此错误。这两个网站的.net版本不同。对我来说固定的是更改应用程序池。为此,在IIS管理器中:

单击网站=>高级设置...(在右侧)=>单击应用程序池右侧=>出现带有“ ...”的按钮=>选择“ .NET v4.5 Classic”

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


0

我们正在网站旁使用Web服务,并且在发布网站时,它也会返回相同的错误。我们发现,通过进入IIS并从“模块”中删除ServiceModel和从“处理程序映射”中删除svc-Integrated,错误消失了。


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'



-1

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

在Windows Server 2012中。转到ISS->模块->删除ServiceModel3-0。(没有数字对我有用)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.