WCF異常處理各種方式詳解
WCF作為一個開發插件,它在處理異常方面的體現了非常大的方便之處。在這里我們將會根據WCF異常處理的各種方式來為大家詳細介紹一下這方面的知識。希望朋友們可以從中獲得一些幫助。#t#
WCF異常處理之WCF異常與實例管理
當服務實例出現異常時,WCF并不會關閉宿主進程,但錯誤可能會影響服務實例,同時還會影響到客戶端繼續使用代理(實際上是通道)訪問服務的能力。準確的說,異常對于客戶端與服務實例的影響與實例模式有關。
WCF異常處理之單調服務與異常
如果調用引發異常,那么緊跟在異常之后,服務實例會被釋放,代理將在客戶端拋出FaultException異常。在默認的情況下,所有服務拋出的異常(包括FaultException的派生類)會使通道發生錯誤。即使客戶端捕獲了異常,它也不能發出隨后的調用,因為它們會引發一個CommunicationObjectFaultedException異常。此時,客戶端只能關閉代理。
WCF異常處理之會話服務與異常
無論使用何種WCF會話綁定,在默認情況下,所有異常(包括FaultException的派生類)都會終止會話。WCF將會釋放實例,而客戶端則獲得一個FaultException的異常。即使客戶端捕獲了異常,也不能繼續使用代理??蛻舳?**可以安全執行的就是關閉代理,因為一旦參與會話的服務實例遇到了錯誤,會話就不能再使用了。
WCF異常處理之單例服務與異常
當我們調用單例服務時,如果遇到異常,單例實例不會終止,而是繼續運行。在默認情況下,所有異常(包括FaultException的派生類)都會導致通道發生錯誤,客戶端無法發出隨后的調用,只能關閉代理。如果客戶端包含了一個單例實例的會話,那么會話會終止。