2011-12-14 77 views
1

我在使用SOAP在ASP.net中创建的Web服务中发布了一个xml,它不返回Web服务返回的响应。它返回以下响应:无法在可可应用程序中使用ASP.Net 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://192.168.10.231/EBServiceHost/Service.svc' 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> 

任何想法发生了什么问题?

+0

您能提供有关该服务的更多信息吗?它是你试图打电话的WCF服务吗? – Buzzer 2012-03-01 06:16:17

+0

@ Buzzer为时已晚,无法回复。我已经解决了这个问题。这是因为我发送错误的方法。现在它工作正常。 – 2012-03-01 09:26:18

回答

0

发生这种情况是因为我发送了错误的方法名称。它通过发送正确的方法名称和请求来解决。

0

我见过这个有几个不同的原因。其中一个原因是因为这是客户端和服务器之间的一种有约束力的错配。具体来说,我们有一个传统的客户端发送soap 1.1。消息发送到使用WSHttpBinding(默认为soap 1.2)配置的wcf服务。一旦我们改变了服务器端的绑定,事情就能顺利进行。此外,由于错误指示请确保您的安全模式和凭据配置正确。我想另外一次我们用svcutil生成了一个代理,默认情况下,它的名字是带有完全限定名称的soap操作。所以检查wcf跟踪,我发现我们期待的soapAction = Namespace.Class.MethodName。但是,客户端(发送soap 1.1消息的java客户端正在发送soapAction = MethodName。我们能够通过简单地替换生成的代理中的完全限定名来解决该问题。

如果您给我更多详细信息,能够找出你的问题和解决方案是什么,所以我可以得到这个答案:)

希望帮助!

相关问题