0

我正在尝试通过目标 c 使用 WCF“/www.xxxxx.net/xxxx.svc”,并按照以下链接 在 iPhone 上使用 Objective-C 使用 WCF Web 服务中的步骤进行操作,

我收到以下错误

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <s:Fault>
      <faultcode xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</faultcode>
      <faultstring xml:lang="en-US">The message with Action 'http://tempuri.org/IService1/GetMembers' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring>
    </s:Fault>
  </s:Body>
</s:Envelope>

请在这方面帮助我,在此先感谢

4

1 回答 1

0

不清楚您是否按原样复制 ObjectiveC 代码。问题可能是您引用的 SO 答案中的代码硬编码了一个无效字符串,该字符串是要发送到 WCF 服务的肥皂 XML。如果您按原样复制代码,则需要发送对您的服务有效的soap XML。

如果您为 WCF 服务捕获了 soap XML 并且它不工作,那么问题仍然是格式不正确的 soap 消息。在任何一种情况下,我都会首先从成功调用 WCF 服务中捕获消息,以确定正确的 soap XML 应该是什么样子,并将其与您正在创建的 soap XML 进行比较,以了解问题所在。

如果可能,请考虑将 webHttpBinding 添加到您的 WCF 服务,以便您可以为您的消息使用更简单的 XML。查看 webHttpBinding 上的这四个部分的演练,了解它需要什么。

于 2012-04-16T13:00:44.233 回答