WCF客戶端獲取服務端異常 自定義異常

2022-03-20 09:04:43 字數 1691 閱讀 3784

引言

首先感謝【.net技術群】裡群主【軒】的大力幫助,如有需要大家也請歡迎加入【.net技術群】(群號:199281001),一起討論交流.net技術(asp.net mvc4、mvc5/c#/wpf/wcf),但願大家在技術上有更多的成就,廢話不多說,直接開始分享。

關於wcf服務端的原生丟擲異常,我就不多說了,相信大家找到這篇博文的時候,已經嘗試過諸多方法了,其中最簡單的丟擲原生的異常直接在[web.config]中配置[紅字部分]中的false改為true就可以捕獲丟擲的異常

報告意外預料之外的異常

在你開發wcf服務時,為了在客戶端程式除錯,將會把服務端發生的所有異常(包括預料之內的和預料之外的)轉換成soap faults訊息傳送至客戶端是非常有用的。

除錯的時候將wcf服務的配置檔案 設定為true,等正式上線的時候設定為false

捕獲自定義異常處理

首先,先附上自定義設計的異常類responsecode[異常**]customexception[自定義異常]

///

///異常處理**

/// public

enum

responsecode

responsecode

///

///邏輯異常

/// public

class

customexception : exception

public customexception(responsecode code, string

msg)

private

string

_msg;

public responsecode code

public

string

msg

set }}

customexception

當我們需要客戶端獲取到wcf服務端的丟擲的異常的時候,使用faultexception

wcf類庫在system.servicemodel命名空間下提供了faultexception類。如果wcf服務丟擲faultexception物件,wcf執行時將生成soap fault訊息並回傳給客戶端程式。

這個處理自定義異常的時候,並不需要把上述中的false改為true

服務端丟擲異常

客戶端捕獲異常

(responsecode)(enum.parse(typeof(responsecode),ex.code.name))//這一條只是將捕獲的異常資訊重新返回為列舉型別物件的值而已,不用列舉可以直接使用ex.code.name

執行結果

wcf客戶端捕獲異常

直接使用exception進行捕獲,然後在監視器中檢視具體是哪乙個異常 檢視stacktrace server stack trace 在 system.servicemodel.channels.securitychannelfactory 1.securityrequestchannel.pro...

WCF學習心得 客戶端獲取服務端自定義類資料

因專案需求,需要乙個wcf服務,趕鴨子上架吧!下面直接切入正題!首先建立wcf應用程式,具體如何建立就不贅述了,網上一大篇,我主要說說自己遇到的問題 問題一 超時問題,在最後獲取資料的時候突然提示服務超時,服務已斷開 解決 配置檔案新增 當然你也可以在 中修改wshttpbinding物件的一些屬性...

Python UDP客戶端 服務端

udpclient.py coding utf 8 from socket import servername 127.0.0.1 伺服器位址,本例中使用一台遠端主機 serverport 12000 伺服器指定的埠 clientsocket socket af inet,sock dgram 建立...