成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于WCF異常處理解決方案總結

開發 后端
這里就WCF異常無法識別的均當作為FaultException異常對象,因此,客戶端可以捕獲FaultException或者Exception異常,文章有詳細的介紹。

異常處理在我們的程序中是不可缺少的,異常可以反饋我們信息,如果還不知道WCF異常的朋友請看下面我為大家介紹一下。異常消息與特定技術有關,.NET異常同樣如此,因而WCF并不支持傳統的異常處理方式。如果在WCF服務中采用傳統的方式處理異常,由于異常消息不能被序列化,因而客戶端無法收到服務拋出的WCF異常,例如這樣的服務設計:

  1. [ServiceContract(SessionModeSessionMode = SessionMode.Allowed)]   
  2. public interface IDocumentsExplorerService   
  3. {   
  4. [OperationContract]   
  5. DocumentList FetchDocuments(string homeDir);   
  6. }   
  7. [ServiceBehavior(InstanceContextModeInstanceContextMode=InstanceContextMode.Single)]   
  8. public class DocumentsExplorerService : IDocumentsExplorerService,IDisposable   
  9. {   
  10. public DocumentList FetchDocuments(string homeDir)   
  11. {   
  12. //Some Codes   
  13.  
  14. if (Directory.Exists(homeDir))   
  15. {   
  16. //Fetch documents according to homedir   
  17. }   
  18. else   
  19. {   
  20. throw new DirectoryNotFoundException(   
  21. string.Format("Directory {0} is not found.",homeDir));   
  22. }   
  23. }   
  24. public void Dispose()   
  25. {   
  26. Console.WriteLine("The service had been disposed.");   
  27. }   
  28. }   

則客戶端在調用如上的服務操作時,如果采用如下的捕獲方式是無法獲取該WCF異常的:

  1. catch (DirectoryNotFoundException ex)   
  2. {   
  3. //handle the exception;   
  4. }  

為了彌補這一缺陷,無法識別的WCF異常均當作為FaultException異常對象,因此,客戶端可以捕獲FaultException或者Exception異常:

  1. catch (FaultException ex)   
  2. {   
  3. //handle the exception;   
  4. }   
  5. catch (Exception ex)   
  6. {   
  7. //handle the exception;   
  8. }  

#T#然而,這樣捕獲的異常,卻無法識別DirectoryNotFoundException所傳遞的錯誤信息。尤為嚴重的是這樣的異常處理方式還會導致傳遞消息的通道出現錯誤,當客戶端繼續調用該服務代理對象的服務操作時,會獲得一個CommunicationObjectFaultedException 異常,無法繼續使用服務。如果服務被設置為PerSession模式或者Single模式,異常還會導致服務對象被釋放終止服務。WCF并不推薦在應用程序域中創建多個ServiceHost實例。如果要托管多個服務,完全可以在一個宿主中通過多個Endpoint公開多個WCF服務。由于應用程序域對安全進行了隔離,如果需要提供不同的安全上下文,則有必要創建多個ServiceHost實例。

 

責任編輯:田樹 來源: 博客
相關推薦

2010-02-24 14:05:08

WCF openati

2010-02-26 15:46:48

Silverlight

2010-02-25 14:53:44

WCF調用服務異常

2012-05-30 15:40:16

大并發并發解決方案

2009-12-07 15:50:27

WCF文件

2009-11-05 12:45:25

WCF異常

2010-02-23 14:56:18

WCF Bug

2009-12-07 18:47:16

WCF流

2010-02-22 10:29:11

WCF上傳文件

2009-10-27 15:02:07

VB.NET文件處理

2010-02-24 09:28:37

WCF安全配置

2012-01-11 10:55:02

ASP.NET MVC

2017-06-01 11:17:57

Python異常重試解決方案

2018-09-14 16:20:37

2010-02-22 13:35:03

WCF異常處理

2024-10-14 08:29:14

異步編程任務

2009-11-09 13:04:53

WCF事物處理

2009-12-08 15:19:58

WCF大數據量

2020-09-04 13:50:35

前端異常監控代碼

2010-10-20 16:01:29

網絡管理解決方案網絡管理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本在线视频一区二区 | 成人一区二区三区在线 | 久久久久国产 | 最新中文字幕 | 色偷偷噜噜噜亚洲男人 | 国产三级大片 | 欧美日韩综合 | 97在线播放| 狠狠涩| 亚洲精品一区在线观看 | 国产精品一区三区 | h视频在线免费 | 亚洲国产精品99久久久久久久久 | 天天天天天天天干 | 真人毛片 | 亚洲综合无码一区二区 | 狠狠骚| 国产精品自产av一区二区三区 | 色爱区综合 | 国产免费一区二区 | 欧美日韩免费视频 | 国产99热在线 | 日本亚洲欧美 | 日本在线一区二区三区 | 狠狠av| 欧美三级电影在线播放 | 国产视频导航 | 亚洲精品视频一区 | 第一区在线观看免费国语入口 | 伊人伊人伊人 | 国产精品久久久99 | 91国产视频在线观看 | 夜夜爽99久久国产综合精品女不卡 | 国产成人综合在线 | 日韩av中文 | 国产欧美精品一区二区色综合 | 日韩国产免费 | 精品美女在线观看 | 国产精品一区二区不卡 | 国产人成精品一区二区三 | 亚洲在线 |