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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
常見WCF異常問題處理方案

對于WCF也學(xué)習(xí)了一段時(shí)間,但是就是一直沒有好好學(xué)一下,但是我對它的興趣還是很大的,我覺得這個(gè)設(shè)計(jì)真是太好了,它可以統(tǒng)一 windows下的通信方式,而且僅僅通過改一下配置文件就可以改變通信方式,它是微軟對SOA的一種架構(gòu)設(shè)計(jì),可以好好學(xué)一下。

#T#dotnet3.0是在 dotnet2.0的基礎(chǔ)上加了幾個(gè)功能塊,WCF、WF、WPF、CardSpace,對于WCF說起來也很好理它的概念,首先有服務(wù)器端程,再有就是服務(wù)器端程序宿主,最后是客戶端程序。在WCF中,如果沒有指定,服務(wù)端的WCF異常不會傳遞到客戶端,如:在等于0時(shí),客戶端根本不知道異常的原因據(jù),也即"Divsionbyzero!"WCF異常信息不會傳到客戶端。

 
 
  1. [ServiceContract]  
  2. publicclassCalculatorService  
  3. ...{  
  4. [OperationContract]  
  5. intDivide(inta,intb)  
  6. ...{  
  7. if(b==0)thrownewException(“Divisionbyzero!”);  
  8. returna/b;  
  9. }  

在最簡單的情況下,我們可以使用空FaultException(它只包含一個(gè)string字符串,稱為錯(cuò)誤原因),如下所示:

 
 
  1. [ServiceContract]  
  2. publicclassCalculatorService  
  3. ...{  
  4. [OperationContract]  
  5. intDivide(inta,intb)  
  6. ...{  
  7. if(b==0)thrownewFaultException(“Divisionbyzero!”);  
  8. returna/b;  
  9. }  

當(dāng)然,我們可以定義強(qiáng)類型的WCF異常信息,并在方法上運(yùn)用FaultContractAttribute來指定它,如下所示:

 
 
  1. [DataContract]  
  2. publicclassMathFault  
  3. ...{  
  4. [DataMember]  
  5. publicstringoperation;  
  6.  
  7. [DataMember]  
  8. publicstringdescription;  
  9. }  
  10.  
  11. [ServiceContract]  
  12. publicclassCalculatorService  
  13. ...{  
  14. [FaultContract(typeof(MathFault))]  
  15. [OperationContract]  
  16. intDivide(inta,intb)  
  17. ...{  
  18. if(b==0)  
  19. ...{  
  20. MathFaultm=newMathFault();  
  21. m.operation=”/”;  
  22. m.description=”Divisionbyzero!”;  
  23. thrownewFaultException(m);  
  24. }  
  25. returna/b;  
  26. }  
  27. }  

注意:不能用XmlSerializer來序列化Fault相關(guān)的對象實(shí)例,即使在其上使用了XmlSerializerFormatAttribute屬性。


當(dāng)前題目:常見WCF異常問題處理方案
網(wǎng)址分享:http://www.5511xx.com/article/dpgiecg.html