自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

WCF路由截獲消息技巧應(yīng)用總結(jié)

開發(fā) 后端
WCF路由截獲消息是WCF截獲消息方法其中之一,它的使用方法和其他幾種有不同之處。我們今天將會為大家詳細介紹一下它的優(yōu)缺點。

WCF是由微軟公司開發(fā)的一款優(yōu)勢比較突出,能夠為我們帶來一些不一樣使用體驗的開發(fā)插件,主要作用于.NET Framework 3.5。WCF是基于消息機制的,一些功能的實現(xiàn)如尋址,加密等在消息中都會體現(xiàn)的淋漓盡致,WCF中的通道就像車間的流水線,而消息就作為這個流水線上待加工的產(chǎn)品。每經(jīng)過一個處理位置,相應(yīng)的通道都會對消息對不同的操作處理。清晰的掌握消息的加工過程對WCF的工作原理,調(diào)試跟蹤,自定義擴展,性能安全都能非常好的現(xiàn)實意義。而要實現(xiàn)截獲消息的目的,通??梢杂幸韵聨追N辦法:#t#

1 WCF路由截獲消息的方法

2 自定義Binding法

3 實現(xiàn)IMessageInspector接口法

4 跟蹤診斷法

四種方法,實現(xiàn)的難度和得到的效果不盡相同。在這里我們主要通過WCF路由截獲消息的方法做一個詳細介紹。

此種方法,有可以分為兩種

a)采用現(xiàn)有tcp消息跟蹤工具。

b) 利用wcf中的路由功能做自定義的路由。

其中常見的現(xiàn)成tcp消息跟蹤工具,我所常用的是以下兩個:

a) tcpTrace

b) soap toolkit 3.0中所帶工具 soap trace utility

 

通過這兩個工具截獲Message的方法,很多朋友們已經(jīng)熟練使用。比如很早的時候Artech就在其blog文章中介紹過tcpTrace的使用,文章為:[原創(chuàng)]我的WCF之旅(9):如何在WCF中使用tcpTrace來進行Soap Trace。所以具體使用方法,我就不再贅述。只總結(jié)一點,在使用tcpTrace或者soap trace utility 的時候,listen port指定的是路由的監(jiān)聽地址,同時也應(yīng)該是client端設(shè)置的via地址。而destination port要設(shè)置的服務(wù)的監(jiān)聽地址。在上面的途中,listen port 應(yīng)該為 8019, 而Destination port為8020

除了使用現(xiàn)成的工具來做路由,WCF本身也支持路由功能。實現(xiàn)原理和上圖一致。唯一不同的是中間的路由器可以由自己用WCF技術(shù)編寫。這樣一來就更靈活一些。做了一個非常簡單的demo,主要適用于request/reply的交互模式。

demo中有五個項目,他們分別為:

Jillzhang.Wcf.MessageInspectors.Contracts

Jillzhang.Wcf.MessageInspectors.Services

Jillzhang.Wcf.MessageInspectors.Host

Jillzhang.Wcf.MessageInspectors.Client

Jillzhang.Wcf.MessageInspectors.Rounter

前面四個是創(chuàng)建了一個非常簡單的WCF服務(wù)和客戶端,組成了一個分布式系統(tǒng)。最關(guān)鍵的是Jillzhang.Wcf.MessageInspectors.Rounter這個項目,通過將ServiceContract的Action和ReplyAction設(shè)置為* ,同時將其ServiceBehavior的AddressFilterMode設(shè)置為Any,就能接收到所有的消息,而不對消息的action或者消息體等進行任何篩選。具體代碼我不貼了,如果感興趣可以下載demo示例代碼。

好了,WCF路由截獲消息的兩種方法都以闡述完畢,那么此種方法有它的優(yōu)點和缺點,它們分別是:

優(yōu)點:

1)路由分析法不用過多修改原客戶端和服務(wù)端的代碼,和原來架構(gòu)的耦合度也比較低。

2)路由分析法能夠體現(xiàn)WCF中強大的路由功能。

缺點:

WCF路由截獲消息缺點也非常顯著:

1)它只能截獲到已經(jīng)發(fā)送的請求消息卻不能截獲相應(yīng)的響應(yīng)。

2)路由法是在通訊過程中增加了節(jié)點,這樣一來就無法使用高效的傳輸安全保證信息的安全性了。

責任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-02-22 17:21:02

WCF消息交換

2010-02-26 13:40:28

WCF消息頭

2010-02-25 16:45:13

WCF應(yīng)用技巧

2010-02-24 12:49:39

WCF枚舉

2010-02-22 11:25:50

WCF DateSet

2010-03-01 13:06:49

WCF繼承

2010-02-22 16:19:25

WCF自托管

2010-02-22 16:26:47

WCF傳輸數(shù)據(jù)

2010-02-22 15:20:54

WCF WS-Disc

2009-12-21 14:49:27

2010-02-25 15:25:19

WCF通道

2010-01-27 17:45:15

Android應(yīng)用技巧

2010-02-25 18:04:02

WCF IIS宿主

2010-03-01 15:40:04

WCF實例停用

2010-03-02 10:50:57

WCF元數(shù)據(jù)交換

2010-02-26 10:46:12

WCF行為擴展

2010-02-23 13:03:34

WCF序列化

2010-03-01 16:04:31

WCF服務(wù)契約

2010-03-01 09:48:23

WCF會話服務(wù)

2010-02-23 14:17:20

WCF配置文件
點贊
收藏

51CTO技術(shù)棧公眾號