Certificate 具有System.Data.Services.IRequestHandler协定的数据服务终结点引发错误
尝试使用System.Data.Services.IRequestHandler合约创建终结点时,我收到以下错误 无法加载操作“ProcessRequestFormMessage”,因为它具有System.ServiceModel.Channels.Message类型的参数或返回类型,或者具有MessageContractAttribute和其他不同类型参数的类型。使用System.ServiceModel.Channels.Message或带有MessageContractAttribute的类型时,该方法不得使用任何其他类型的参数。 我发现另外两个问题有这个错误(和),但都没有令人满意的答案。我拉了拉,并能够重现问题 简化的web.config文件: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的
<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();
}
}