首页 > 代码库 > wcf 无法激活服务,因为它不支持 ASP.NET 兼容性

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
 

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