天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

WCF從理論到實踐(10):異常處理

系列文章導航:

WCF從理論到實踐(1):揭開神秘面紗

WCF從理論到實踐(2):決戰紫禁之巔

WCF從理論到實踐(3):八號當鋪之黑色契約

WCF從理論到實踐(4):路在何方

WCF從理論到實踐(5):Binding細解

WCF從理論到實踐(6):WCF架構

WCF從理論到實踐(7):消息交換模式

WCF從理論到實踐(8):事件廣播

WCF從理論到實踐(9):實例模式和對象生命周期

WCF從理論到實踐(10):異常處理

WCF從理論到實踐(11)-異步

WCF從理論到實踐(12):事務

WCF從理論到實踐(13):事務投票

WCF從理論到實踐(14):WCF解決方案模板

WCF從理論到實踐(15):響應變化

WCF從理論到實踐(16):操作重載(帶視頻+ppt+源碼)

WCF從理論到實踐(17):OO大背離(帶視頻+ppt+源碼)


本文目的

通過閱讀本文,您能理解以下的知識

1) WCF中存在哪幾種異常處理方式?
2) 各種異常處理所適用的應用場合?
3) WCF中常見的異常類型?
4) 代碼不騙人,用示例來演示效果,加深印象

本文適合的讀者

本文適合WCF的初學者,但要求對WCF有一些了解,并實現過簡單的服務/客戶端。


WCF中存在哪幾種異常處理方式?

WCF定義了幾種異常處理模型,它們分別如下:

1) 缺省模式
2) 包含詳細信息模式
3) 自定義異常消息模式

各種異常處理所適用的應用場合?

1) 缺省模式

缺省情況下,服務端發生異常,客戶端會得到一個缺省的Exception,但這個Exception實例中并不包括詳細的異常信息。只是告訴客戶端服務端不能正常工作。在服務器和客戶端模式的程序中,有些情況下,服務啟是不能完全信賴客戶端的,比如瀏覽器和web服務器之間,為了防止非法的客戶端從異常消息中獲取服務端的比較詳細的信息,使得心懷叵測之人有機可乘,所以服務啟對于異常 返回通常會比較模糊。WCF也采用了這種做法,缺省情況下,它返回給客戶端的異常只告知我出錯了,但不告訴人家他哪里錯了。這通常應用于客戶端來源不明的生產環境,以此保護服務程序。  

2) 包含詳細信息模式

如果想消息更友好一些,可以通過IncludeExceptionDetailInFaults=True來設置返回具體的異常信息,這樣就能告訴客戶端服務出錯了,并指出錯誤出在哪里。在程序開發階段或者有些應用場合,客戶端是受信任的,為了讓客戶端能更詳盡的了解服務端到底出了什么問題,WCF也支持發送詳細的錯誤消息給客戶端,這更有利于應用程序調試。而返回詳細異常有兩種方法:第一種:通過在服務端的配置文件中設置:,第二種方式為通過在代碼中指定:[ServiceBehavior(IncludeExceptionDetailInFaults=true)]

3) 自定義異常消息模式

在WCF中,還支持更詳細的異常消息,它通過自定義的異常消息FaultMessage來傳達更多的內容。WCF采用通用的Soap Fault來處理異常,并提供了FaultException和FaultException兩個類型來描述和操作異常。

WCF中常見的異常類型?

WCF包括三種常見類型的異常:

1) 通訊異常,這通常是因為鏈路的原因,比如服務沒有啟動,網絡阻塞等。這類異常是CommunicationException或者其派生類
2) 狀態異常,這類異常通常是與上文提到的實例模式相關的,當訪問了一個已經銷毀的服務器對象時便會引發此類型的異常,它們通常是ObjectDisposedException
3) 服務異常,由服務端根據具體的業務邏輯觸發,通常是FaultException 值得注意的是當拋出服務異常的時候,不同的實例模式的處理方式有所不同:

PerSession:這種模式下,拋出異常,服務實例將銷毀,客戶端拋出FaultException,客戶端代理對象無法繼續使用

PerCall:這種模式下,拋出異常,服務實例也將銷毀。客戶端代理對象無法繼續使用

Single:這種模式下,拋出異常,服務實例會照舊運行。客戶端代理無法繼續使用。

代碼不騙人,用示例來演示效果,加深印象

本文所實現的實例非常簡單,目的就是想驗證一下各種異常處理方式下的不同表現。

1) 缺省模式

在示例中,我們這樣拋出異常 

public string GetWelcomeInfo([ParaAtt(CanSetNull=false)] string name) 



ParameterInfo para 
= MethodInfo.GetCurrentMethod().GetParameters()[0]; 

ParaAtt att 
= ParaAtt.GetCustomAttribute(para, typeof(ParaAtt)) as ParaAtt; 

if (!att.CanSetNull && name == null



throw new Exception("參數不能設置為null"); 

}
 

return "Hello," + name; 

}
 

NET技術WCF從理論到實踐(10):異常處理,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 日本久久免费大片 | 青苹果乐园在线观看电视剧 | 学生妹被爆插到高潮无遮挡 | 亚洲视频在线免费看 | 最近高清中文字幕无吗免费看 | 免费 高清 中文在线观看 | 97人视频国产在线观看 | 一级黄色香蕉视频 | 久色乳综合思思在线视频 | 学校女性奴sm训练调教 | 手机伊在人线香蕉2 | 欧美成人无码视频午夜福利 | 嗯啊快拔出来我是你老师视频 | 爱情岛论坛免费在线观看 | 国产精品久久人妻互换毛片 | 热re99久久精品国99热 | 欧美一区二区视频在线观看 | 一个人HD在线观看免费高清视频 | 国产又粗又猛又爽黄老大爷 | 99久久国语露脸精品国产 | 国产成人欧美日韩在线电影 | 欧美 另类 美腿 亚洲 无码 | 午夜在线视频国产极品片 | 国产 日韩 欧美 高清 亚洲 | 美女露出乳胸扒开尿口 | 亚洲风情无码免费视频 | 人人看人人看 | 久久精品国产96精品亚洲 | 国产精品99AV在线观看 | 暖暖日本手机免费完整版在线观看 | 殴美黄色网 | 97人妻精品全国免费视频 | 亚洲无遮挡 | 国产激情一级毛片久久久 | 久久精品黄AA片一区二区三区 | 德国美女密密麻麻浓毛 | 一本色道久久88综合日韩精品 | a级销魂美女 | 在线日本v二区不卡 | 国产私拍福利精品视频 | 日韩a在线看免费观看视频 日韩a视频在线观看 |