【问题标题】:WCF Soap Services without Soap Action没有肥皂动作的 WCF 肥皂服务
【发布时间】:2018-04-12 19:53:23
【问题描述】:

我有一个现有的soap 客户端,它在不使用soap 操作属性的情况下与soap 服务进行通信。现在,我们最近用 C# WCF 服务替换了这个肥皂服务,默认情况下它需要一个肥皂动作。 当我再次导入 WSDL 时,就没有问题了。但是,由于向后兼容的原因,我不想重新生成肥皂客户端。今天下午发现一篇文章解决了我的问题:http://spikesoftware.azurewebsites.net/?p=151#comment-396784

现在的问题是我的 C# 客户端无法调用大部分的肥皂动作。我无法找出这不再起作用的原因。 我收到的错误如下:

留言:

System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail] : 反序列化操作请求消息正文时出错 '获取研讨会'。 OperationFormatter 遇到无效消息 身体。预计会找到名称为“元素”的节点类型 “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>)

有人可以帮我吗?

【问题讨论】:

  • web.config中添加的绑定是什么?
  • 我的绑定是basicHttpBinding

标签: c# wcf soap


【解决方案1】:

你可以尝试一些东西,

  1. 请使用 wsHttpBinding 而不是 basicHttpBinding
  2. 使用 svcutil 生成客户端代理

【讨论】:

  • 我确实按照您推荐的步骤进行操作。但是,那并没有解决我当时的问题。在我这样做之后,我会更深入地研究真正的问题出了什么问题。之后我发现问题是由我编写的自定义消息调度程序中的错误引起的。现在它工作正常。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多