Certificate 具有System.Data.Services.IRequestHandler协定的数据服务终结点引发错误

Certificate 具有System.Data.Services.IRequestHandler协定的数据服务终结点引发错误,certificate,wcf-data-services,wcf-endpoint,servicecontract,Certificate,Wcf Data Services,Wcf Endpoint,Servicecontract,尝试使用System.Data.Services.IRequestHandler合约创建终结点时,我收到以下错误 无法加载操作“ProcessRequestFormMessage”,因为它具有System.ServiceModel.Channels.Message类型的参数或返回类型,或者具有MessageContractAttribute和其他不同类型参数的类型。使用System.ServiceModel.Channels.Message或带有MessageContractAttribute的

尝试使用System.Data.Services.IRequestHandler合约创建终结点时,我收到以下错误

无法加载操作“ProcessRequestFormMessage”,因为它具有System.ServiceModel.Channels.Message类型的参数或返回类型,或者具有MessageContractAttribute和其他不同类型参数的类型。使用System.ServiceModel.Channels.Message或带有MessageContractAttribute的类型时,该方法不得使用任何其他类型的参数。

我发现另外两个问题有这个错误(和),但都没有令人满意的答案。我拉了拉,并能够重现问题

简化的web.config文件:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
    </compilation>
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>
  <system.serviceModel>
    <services>
      <service  name="NorthwindService.Northwind">
        <endpoint address="http://localhost:12345/Northwind.svc" binding="basicHttpBinding" contract="System.Data.Services.IRequestHandler" />
      </service>
    </services>
  </system.serviceModel>
</configuration>
我的ServiceContract没有抛出错误(但也没有真正起作用,因为我没有复制所有的
DataService
功能):

当我试图在端点中使用内置ServiceContract时,我不明白为什么它会抛出这个错误。我对数据服务相当陌生,所以我确信我遗漏了一些其他人都很明显的东西

谢谢

编辑:

归根结底,我的目标是使用证书身份验证,因此,如果在解决这个问题时有办法做到这一点,我愿意接受。我一直在使用它。

您正在使用
basicHttpBinding
。将其更改为
webHttpBinding

谢谢Chris。我尝试了
wsHttpBinding
basichttppbinding
,但没有尝试webHttpBinding。仍然不确定为什么其他两个不能与IRequestHandler一起工作,但这一个可以。
<%@ ServiceHost Language="C#" Factory="System.Data.Services.DataServiceHostFactory, Microsoft.Data.Services, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Service="NorthwindService.Northwind" %>
namespace System.Data.Services
{
  [ServiceContract]
  public interface IRequestHandler
  {
    [OperationContract]
    [WebInvoke(UriTemplate = "*", Method = "*")]
    Message ProcessRequestForMessage(Stream messageBody);
  }
}
namespace NorthwindService
{
  [ServiceContract]
  interface Interface1
  {
    [OperationContract]
    [WebInvoke(UriTemplate = "*", Method = "*")]
    Message ProcessRequestForMessage();
  }
}