WCF作为一个开发插件,它在处理异常方面的体现了非常大的方便之处。在这里我们将会根据WCF异常处理的各种方式来为大家详细介绍一下这方面的知识。希望朋友们可以从中获得一些帮助。#t#
WCF异常处理之WCF异常与实例管理
当服务实例出现异常时,WCF并不会关闭宿主进程,但错误可能会影响服务实例,同时还会影响到客户端继续使用代理(实际上是通道)访问服务的能力。准确的说,异常对于客户端与服务实例的影响与实例模式有关。
WCF异常处理之单调服务与异常
如果调用引发异常,那么紧跟在异常之后,服务实例会被释放,代理将在客户端抛出FaultException异常。在默认的情况下,所有服务抛出的异常(包括FaultException的派生类)会使通道发生错误。即使客户端捕获了异常,它也不能发出随后的调用,因为它们会引发一个CommunicationObjectFaultedException异常。此时,客户端只能关闭代理。
WCF异常处理之会话服务与异常
无论使用何种WCF会话绑定,在默认情况下,所有异常(包括FaultException的派生类)都会终止会话。WCF将会释放实例,而客户端则获得一个FaultException的异常。即使客户端捕获了异常,也不能继续使用代理。客户端***可以安全执行的就是关闭代理,因为一旦参与会话的服务实例遇到了错误,会话就不能再使用了。
WCF异常处理之单例服务与异常
当我们调用单例服务时,如果遇到异常,单例实例不会终止,而是继续运行。在默认情况下,所有异常(包括FaultException的派生类)都会导致通道发生错误,客户端无法发出随后的调用,只能关闭代理。如果客户端包含了一个单例实例的会话,那么会话会终止。