wcf 无法激活服务,因为它不支持 ASP.NET 兼容性

<system.serviceModel>
    ....
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"  multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>

  如果wcf配置中aspNetCompatibilityEnabled等的配置,相应的serviceContract的实现类里面也要加对应的声明,如下所示:

[ServiceContract]
    interface IMyContract
    {
        [OperationContract]
        string MyMethod(string text);

        [OperationContract]
        string MyOtherMethod(string text);
    }

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public class MyService : IMyContract
    {
        public string MyMethod(string text)
        {
            return string.Format("Hello,{0}", text);
        }

        public string MyOtherMethod(string text)
        {
            return string.Format("Cannot call this method over wcf,{0}", text);
        }
    }

vs在创建wcf服务的时候加上了兼容模式,如果在Contract实现的时候缺少了兼容模式的声明,就会出错。

无法激活服务,因为它需要 ASP.NET 兼容性。没有未此应用程序启用 ASP.NET 兼容性。请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode 属性设置为 Required 以外的值。

兼容模式使用范例:http://www.cnblogs.com/artech/archive/2009/06/25/1511165.html
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。