我有一个现有的soap客户端,他在不使用soap action属性的情况下与soap服务进行通信。现在,我们最近使用C#WCF服务替换了这个soap服务,默认情况下需要使用soap操作。 当我再次导入WSDL时,没有问题。但是,由于向后兼容的原因,我不想重新生成soap客户端。今天下午我发现了一篇文章解决了我的问题:http://spikesoftware.azurewebsites.net/?p=151#comment-396784
现在的问题是我的C#客户端无法调用大多数soap操作。我不知道为什么它不再起作用了。 我收到的错误如下:
消息:
System.ServiceModel.FaultException`1 [System.ServiceModel.ExceptionDetail] :反序列化操作的请求消息的主体时出错 'GetWorkshops'。 OperationFormatter遇到无效的消息 身体。预计会找到名称为“Element”的节点类型 'GetWorkshops'和名称空间'http://tempuri.org/'。找到节点类型 名为“GetWorkshops_V2”和名称空间的“元素” 'http://tempuri.org/'
这两种方法的操作合同如下:
[OperationContract(Action = "GetWorkshops", Name = "GetWorkshops")]
WorkshopResponse GetWorkshops(<some parameters>)
[OperationContract (Action = "GetWorkshops_V2", Name = "GetWorkshops_V2")]
WorkshopResponse_V2 GetWorkshopsV2(<some parameters>)
有人可以帮助我吗?
答案 0 :(得分:1)
你可以尝试一些事情,