对于上一篇文章 (WCF基本异常处理模式:[上篇]、[中篇]、[下篇]),主要是站在最终开发者的角度对WCF关于异常处理编程模式进行了介绍,接下来,我们需要将我们的目光转移到WCF框架内部,深入剖析整个WCF异常处理流程。在基于SOAP的消息交换过程中,异常最终通过Fault消息承载,所以很自然地,接下来的介绍从SOAP Fault说起。
一、 从SOAP Fault说起(基于SOAP 1.2)
服务调用的最终实现通过消息交换完成,WCF本质上可以看成是一个消息处理的框架。消息,不但承载着正常服务调用的请求和回复,在出现异常时,消息依然是错误信息的载体。今年来,尽管随着REST的迅速发展,基于POX(Plain of XML)消息交换大行其道;AJAX的持续升温,又是的基于非XML(JSON)的消息开始火热,但是不可否认,在今后不短的一段时间内SOAP依然是主流。看看现在有多少WS-*规范或者标准是建立在SOAP之上,就应该对这个论断不会有怀疑。
W3C先后出台了两个关于SOAP的规范:SOAP 1.1和SOAP 1.2。在《WCF技术剖析(卷1)》的第5章,我曾经按照SOAP 1.2规范对SOAP作了全面的介绍,这其中就包括对SOAP Fault。由于异常在消息交换中通过Fault消息承载,所以很多必要对SOAP Fault的相关规范作一下重申,至于SOAP的其他相关的内容,在这里就不再作重复的介绍了。
要了解SOAP 1.2下关于SOAP 1.2对SOAP Fault的规范,我们首先来看看一下一个具有完整结构的Fault SOAP。
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>