日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
利用WCF實(shí)現(xiàn)將服務(wù)器端的錯誤信息返回

  最近在園子里轉(zhuǎn)看到有人對如題的實(shí)現(xiàn)有疑問,今天有時間就寫了項(xiàng)目把實(shí)現(xiàn)簡單的講解一下,如果你是牛逼人物那就繞道吧,哥不想浪費(fèi)你的時間,現(xiàn)在開始:

創(chuàng)新互聯(lián)專注于和平企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城系統(tǒng)網(wǎng)站開發(fā)。和平網(wǎng)站建設(shè)公司,為和平等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

  默認(rèn)WCF是不允許將服務(wù)器的異常信息返回到客戶端的(主要是客戶端不一定能夠識別clr的異常信息),如果你有這方面的需求可以通過SOAP的Fault包的形式返回異常信息,首先要做的就是設(shè)置配置文件,將默認(rèn)不允許返回錯誤信息的設(shè)置改成如下:

  

  

  

  

  

  

  

  

  然后定義承載信息的DataContract

  [DataContract]

  publicclassErro

  {

  [DataMember]

  publicstringMessage

  {

  get;set;

  }

  }

  上邊的代碼 就不用介紹了 就是一個數(shù)據(jù)合同

  //服務(wù)契約定義了可以遠(yuǎn)程調(diào)用的對象和方法//定義服務(wù)契約

  [XmlSerializerFormat]//定義序列化的方式

  [ServiceContract(SessionMode = SessionMode.Allowed)]//SessionMode = SessionMode.Allowed:設(shè)置此屬性意味著可以使用會話Binding

  publicinterfaceIActionMain

  {

  //定義操作契約

  [DataContractFormat]//定義序列化的方式

  [OperationContract]

  stringGetName(stringpInc);

  [FaultContract(typeof(ErroInfo.Erro))]//如果有異常就返回下面定義的數(shù)據(jù)契約的結(jié)構(gòu)數(shù)據(jù)

  [FaultContract(typeof(DivideByZeroException))]

  [OperationContract]

  DataCollection Return();

  }

  在方法中定義屬性,這里有兩種實(shí)現(xiàn)

  1.使用自定義的錯誤類型

  [FaultContract(typeof(ErroInfo.Erro))]//如果有異常就返回下面定義的數(shù)據(jù)契約的結(jié)構(gòu)數(shù)據(jù)

  2.使用系統(tǒng)的異常類型 [FaultContract(typeof(DivideByZeroException))]

  在契約實(shí)現(xiàn)類中將異常拋出

  thrownewFaultException(newDivideByZeroException("這個是自定義的異常!"));

  到此服務(wù)器端的實(shí)現(xiàn)完成。

  下邊看客戶端的實(shí)現(xiàn)

  配置文件不需要特殊設(shè)置,調(diào)用函數(shù),抓取異常,代碼如下:

  try

  {

  returnthis.Channel.Return();

  }

  catch(FaultException exception)

  {

  thrownewException(exception.Detail.Message);

  }

  catch(FaultException exception)

  {

  thrownewException(exception.Detail.Message);

  }

  FaultException exception:這個抓取的是定義的異常類型。

  FaultException exception:這個抓取的是系統(tǒng)異常類型

  注意這里獲取異常的信息的方法是exception.Detail.Message,而不是Message。

原文鏈接:http://www.cnblogs.com/Ref-tian/archive/2011/12/21/2295602.html


網(wǎng)站標(biāo)題:利用WCF實(shí)現(xiàn)將服務(wù)器端的錯誤信息返回
標(biāo)題路徑:http://www.5511xx.com/article/cddsejj.html