【问题标题】:Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel无法从程序集“System.ServiceModel”加载类型“System.ServiceModel.Activation.HttpModule”
【发布时间】:2013-03-19 07:25:51
【问题描述】:

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

这是一个4.0框架的APP。

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

“无法从 程序集'System.ServiceModel,版本=3.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089'"

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

有人知道另一种方法吗?

【问题讨论】:

    标签: iis service svc


    【解决方案1】:

    好的,终于明白了。

    %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 上对我有用。所有其他答案都没有帮助。谢谢!
    【解决方案2】:

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

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

    这个解决方案的所有问题都提到了使用 aspnet_regiis.exe 重新注册 aspNet。但这对我不起作用。

    虽然这是一个有效的解决方案(这里解释得很漂亮)

    但它不适用于 Windows 8。

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

    谢谢尼哈

    【讨论】:

    • 此建议对于 Windows Server 2012 也是必要的。
    • 感谢您传递此信息。在 Win 8.1 上解决这个问题非常好
    • 您无需启用所有功能,只需 Http Activation!
    • Marius 说的,只是 .NET 3.5 Features 下的 Http Activation
    • 你和 Neha 拯救了我剩下的头发
    【解决方案3】:

    试试

    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

    【讨论】:

    • 我们也可以使用CMD:输入地址,cd\Windows\Microsoft.NET\Framework64\v4.0.30319,然后安装:aspnet_regiis.exe -iru命令,接下来最好是通过 iisreset 重启 ISS
    • 这在今天仍然很有帮助。我希望现在 MS 已经解决了这个问题。在我的例子中,我们已经有一个使用 ASP.net 4.0 框架正在运行的 IIS 应用程序。虽然不完全确定客户除了升级到 4.5.1 和一堆其他更新之外做了什么,但有必要重新运行此命令,这是我们的支持工程师没有想到的,因为他们不必这样做有一段时间了。
    • 感谢您的回答。但是,这对我不起作用。但是在 Windows 功能中启用“.Net Framework 3.5”和“.Net Framework 4.5”下的所有功能(如下面的答案中所述)就可以了。
    • 我有一个 windows server 2008 x64 R2,它运行良好,但一个月后,我收到了这个错误,我找到了这篇文章并在我的服务器上运行这个命令,它解决了我的问题。我从来没有在我的服务器上安装或更新任何东西,现在的问题是为什么会发生这种情况?它是正常的还是黑客类型或类似的东西?
    • 只有当我为 v4.0.XXXXX 运行 aspnet_regiis.exe -iru AND v2.0.XXXXX 版本时,它才对我有用!
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      您好,感谢您的提问; 解决:“无法从程序集 '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,但没有成功。功能开启后,黄屏错误消失了。谢谢;

      【讨论】:

      • 这在 Windows Server 2012 R2 中对我有用 - 谢谢!
      • 同样适用于 Windows 8。谢谢!
      • 这为我修复了 Win8。谢谢! +1
      • 我只需要启用“Http Activation”,因为我在 IIS 中托管服务。它对我有用,谢谢。
      • 在 Windows 10 中为我工作。
      【解决方案6】:

      详情

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

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

      【讨论】:

        【解决方案7】:

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

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

        【讨论】:

          【解决方案8】:

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

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

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

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

          【讨论】:

            【解决方案9】:

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

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

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

            【讨论】:

              【解决方案10】:

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

              【讨论】:

                【解决方案11】:

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

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

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

                Get-WindowsFeature | Format-Table
                

                【讨论】:

                  【解决方案12】:

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

                  【讨论】:

                    【解决方案13】:

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

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

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

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

                    【讨论】:

                      【解决方案14】:

                      您可能更改了 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

                      【讨论】:

                        【解决方案15】:

                        出现此问题的原因是 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

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

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2016-01-02
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2012-05-05
                          相关资源
                          最近更新 更多