首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理WCF中不正确的SOAP错误?

如何处理WCF中不正确的SOAP错误?
EN

Stack Overflow用户
提问于 2010-02-18 17:52:57
回答 2查看 16.6K关注 0票数 5

我必须使用SOAP来使用第三方web服务。让它与WCF一起工作很容易,但现在我遇到了SOAP错误的问题。服务向我发送了一个不正确的SOAP错误:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8" ?>
<SOAP-ENV:Envelope 
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
        <SOAP-ENV:Fault>
            <SOAP-ENV:faultcode>14</SOAP-ENV:faultcode>
            <SOAP-ENV:faultstring>Unknown Function</SOAP-ENV:faultstring>
        </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

错误是<faultcode>不能有名称空间:

代码语言:javascript
运行
复制
System.ServiceModel.CommunicationException : Server returned an invalid 
SOAP Fault. Please see InnerException for more details.
    ----> System.Xml.XmlException : Start element 'faultcode' from namespace 
    '' expected. Found element 'SOAP-ENV:faultcode' from namespace 
    'http://schemas.xmlsoap.org/soap/envelope/'.

我不能改变原始的web服务--但是在WCF中有没有什么东西我可以用来以某种方式处理这些错误消息,而不需要一直使用CommunicationException

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-19 03:53:55

是的,但它并不是很优雅。请参阅此论坛帖子底部的消息检查器代码:

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/435850aa-bf74-4158-a29a-256135207948

基本上,您可以接收传入的消息并对其进行修改,以便WCF可以处理它。

票数 12
EN

Stack Overflow用户

发布于 2010-04-07 02:54:31

我相信与WCF System.ServiceModel.Channels.ServiceChannel.HandleReply / System.ServiceModel.Channels.MessageFualt.CreateFault.相比,老式的System.Web.Services.SoapHttpClientProtocol类对不符合标准的错误更能容忍。

FWIW。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2287635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档