我需要创建一个将由合作公司使用的SOAP Web服务。合作公司提供了服务的WSDL文件示例,因为有一些必须与它们匹配的方法和对象的命名约定。这是一个相当简单的Web服务,使用execute
方法将NameValue
个对象作为输入,并返回boolean
。这个WSDL文件显然是用Java编写的SOAP Web服务。
我使用svcutil
使用他们的WSDL生成类,用于我自己的webservice,它是用C#编写的WCF服务。该服务已部署,我可以使用SOAPUI调用它并获得预期的结果。
然而,合作公司告诉我,我的网络服务的WSDL与预期的不匹配,并且我的服务无法从他们的系统调用。他们得出的错误是:
带有操作的消息'执行'不能在接收器处理, 由于EndpointDispatcher上的ContractFilter不匹配。这可能 是因为合同不匹配(两者之间不匹配的行为) 发件人和收件人)或发件人之间的绑定/安全性不匹配 和接收器。检查发件人和收件人是否一样 合同和相同的约束(包括安全要求,例如 消息,传输,无)。
在检查由我的WCF服务生成的WSDL时,我看到一些名称与其WSDL文件中的名称不同。例如,其WSDL中execute
操作的请求消息称为request
,但在我的WSDL中,它现在称为IMyService_execute_InputMessage
。
如何更改我的WCF服务,以便生成的WSDL与合作公司的WSDL匹配?