91

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

它是一个4.0框架的APP。

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

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

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

有谁知道另一种方法?

4

15 回答 15

160

尝试

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

于 2013-07-24T07:58:29.133 回答
52

我的机器上安装了 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”下的所有内容。

谢谢内哈

于 2013-04-30T16:01:11.253 回答
38

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

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

在此处输入图像描述

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

于 2013-11-19T15:13:46.397 回答
12

您可以使用以下命令在带有 powershell 的 windows server 2012 上安装这些功能:

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

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

Get-WindowsFeature | Format-Table
于 2016-07-05T09:13:05.677 回答
7

好的,终于明白了。

更改此行%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>
于 2013-04-11T12:55:51.340 回答
5

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

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

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

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

于 2015-02-09T13:31:03.807 回答
4

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

于 2013-08-12T22:01:16.187 回答
1

细节

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

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

于 2014-05-20T17:07:46.383 回答
1

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

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

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

于 2015-06-17T15:17:41.700 回答
0

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

于 2016-02-04T17:21:50.900 回答
0

我迟到了,希望对某人有所帮助....这是 IIS 8.0 的一个已知问题

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

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

回到机器名节点的“Features View”,双击“Handler Mappings”。找到“svc-Integrated”并将其删除。图 2 用于解决 IIS 8 错误:无法加载类型“System.ServiceModel.Activation.HttpModule”</p>

于 2019-08-02T15:15:18.473 回答
0

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

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

于 2020-07-15T05:39:55.800 回答
0

出现此问题的原因是Applicationhost.configWindows Process Activation Service (WAS) 的文件有一些与 .NET Framework 4.0 不兼容的标记。

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

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

在解决无法从程序集 System.ServiceModel 加载类型 system.servicemodel.activation.httpmodule 中检查每个解决方法的详细步骤

于 2021-01-06T11:39:21.210 回答
-1

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

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

于 2014-11-04T10:12:02.190 回答
-1

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

于 2018-12-07T02:57:14.943 回答