【问题标题】:WCF IsFault and FaultExceptionWCF IsFault 和 FaultException
【发布时间】:2009-08-18 15:16:00
【问题描述】:

好的,我在这里有点困惑。我有一个调用另一个 WCF 服务(服务 B)的 WCF 服务(服务 A)。当我在服务 B 上抛出异常时,例如throw new Exception("test") 然后服务 A 没有收到异常,而是在响应消息上将 IsFault 设置为 true,例如

responseMessage = forwardingChannel.Process(message)
if (responseMessage.IsFault) {
    // Yes, there is a fault
}

我希望我可以在 Process 方法周围放置一个 try-catch 并接收异常。有人可以向我解释一下这里发生了什么吗?

谢谢

【问题讨论】:

    标签: .net wcf


    【解决方案1】:

    如果服务 A 是 Java 服务,您是否希望通过调用服务 B 得到 .NET 异常?

    默认情况下,WCF 服务中未处理的异常将作为错误返回。如果服务正在使用 SOAP,则将作为 SOAP 故障返回。在普通的 WCF 客户端中,这将被转换为 FaultException。

    【讨论】:

    • 好的,感谢您的回复,但是您如何将 SOAP 错误转换为 FaultException?为什么这不会在我的 WCF 服务上自动发生,但会在客户端上发生?再次感谢
    • 如果您在客户端中使用添加服务引用,则服务返回的 SOAP 错误转换为 FaultException。
    • 是的,但是在中介服务的情况下,您不会以相同的方式获得参考,那么您如何翻译呢?谢谢
    • 完全一样!查看故障以找出问题所在。
    • 我正在做这个 MessageFault messageFault = MessageFault.CreateFault(response, int.MaxValue);抛出新的故障异常(消息故障);我认为这是正确的方法
    猜你喜欢
    • 1970-01-01
    • 2014-01-24
    • 2011-08-08
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 2011-08-29
    相关资源
    最近更新 更多