我正在尝试创建一个宁静的wcf Web服务.当我尝试通过客户端连接到服务时,我收到以下错误:
无法激活该服务,因为它不支持ASP.NET兼容性.为此应用程序启用了ASP.NET兼容性.在web.config中关闭ASP.NET兼容模式,或者将AspNetCompatibilityRequirements属性添加到服务类型,其RequirementsMode设置为"Allowed"或"Required".
其他人遇到了问题,但他们通过更改web.config来修复它.我已经实现了他们的修复,但问题仍然存在.这是我的web.config:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="WebBehavior" >
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MyServiceBehavior" name="myfirstwcf">
<endpoint address="ws" binding="basicHttpBinding"
contract="Imyfirstwcf" />
<endpoint address="ws2" binding="wsHttpBinding"
contract="Imyfirstwcf" />
<endpoint address="" behaviorConfiguration="WebBehavior"
binding="webHttpBinding"
contract="Imyfirstwcf" />
<endpoint address="mex" binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled= "true"
multipleSiteBindingsEnabled="true" />
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud) 嗨,我只是在学习WCF,并且正在尝试为现有的ASP.NET MVC 4应用程序创建Web服务.这是我到目前为止所做的:
我已经创建了一个WCF服务应用程序.我定义了数据契约和数据成员:
[DataContract]
public class BookData
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Author { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public DateTime PublicationDate { get; set; }
[DataMember]
public int CategoryId { get; set; }
[DataMember]
public decimal Price { get; set; }
[DataMember]
public string BookUrl { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已经定义了服务合同:
[ServiceContract]
public interface IBookService
{ …Run Code Online (Sandbox Code Playgroud)