zoukankan      html  css  js  c++  java
  • win8 下 WCF "Could not load type 'System.ServiceModel.Activation.HttpModule'" 错误解决方案

      From:http://support.microsoft.com/kb/2015129

    Symptoms

      Consider the following scenario. You install the .NET Framework 4.0. Then, you install an earlier version of the .NET Framework, or you enable .NET 3.0 WCF HTTP Activation. In this scenario, you may receive the following error message when you when run applications that are hosted on Internet Information Services (IIS):

    Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. 
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.TypeLoadException: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

     

    Cause

      This issue occurs because the Applicationhost.config file for Windows Process Activation Service (WAS) has the following section defined, and this section is incompatible with the .NET Framework 4.0:

    <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />

      This section should be defined as follows:

    <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />

      Note You can find the Applicationhost.config file in the following location:

    %windir%\system32\inetsrv\config

     

    Resolution

      To resolve this issue, run the following command line: 

    aspnet_regiis.exe /iru

      The Aspnet_regiis.exe file can be found in one of the following locations:

    %windir%\Microsoft.NET\Framework\v4.0.30319

    %windir%\Microsoft.NET\Framework64\v4.0.30319 (on a 64-bit computer)

     

    注意

      以上方案在win8系统中无效,因为在最后一步运行 aspnet_regiis.exe /iru 命令时会失败,所以解决方案是找到 Applicationhost.config 文件(目录在%windir%\system32\inetsrv\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" />

      我目前只找到这种方案,如果有更好方案欢迎指出。

  • 相关阅读:
    微服务Kong(三)——添加一个API
    微服务Kong(二)——快速入门
    Oracle 12c 创建用户
    汉字转拼音工具
    GITHUB一个新的项目发布
    Log4J 配置文件模板及代码说明
    Log4J2 配置文件模板及代码说明
    java 写入数据到Excel文件中_Demo
    关于数据库NULL值的几个问题思考
    详解Spring中的Profile
  • 原文地址:https://www.cnblogs.com/artwl/p/2678372.html
Copyright © 2011-2022 走看看