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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
核心對象WCFDispatcher分析

我們要熟練掌握一門技術(shù)的話,我們就要了解它其中的核心技術(shù),下面我就來看看關(guān)于WCF重要的核心技術(shù)吧。由于應(yīng)用WCF的是一個(gè)分布式環(huán)境,按照所處的環(huán)境的不同,可以將ServiceMode分成client端的ServiceMode和service端的 ServiceMode。就其實(shí)現(xiàn)的復(fù)雜度而言,service端的ServiceMode要比client端的復(fù)雜很多。對于Service端來講,WCF的ServiceMode需要解決的是:
◆如何根據(jù)不同的listening URI創(chuàng)建ChannelListener并進(jìn)行監(jiān)聽;
◆當(dāng)request抵達(dá),如何創(chuàng)建適合的Channel接收request message;
◆如何將Message分發(fā)到對應(yīng)的Endpoint進(jìn)行處理;
◆如何進(jìn)一步將Message分發(fā)到對應(yīng)的service instance;
◆以及如何進(jìn)一步地分發(fā)的具體的service instance的匹配的method call。

成都創(chuàng)新互聯(lián)10多年成都企業(yè)網(wǎng)站定制服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都企業(yè)網(wǎng)站定制及推廣,對成都墻體彩繪等多個(gè)領(lǐng)域擁有豐富的網(wǎng)站營銷經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。

由于“分發(fā)(Dispatch)”是其根本的功能和任務(wù),所以Dispatcher是整個(gè)Service端ServiceMode的核心。正如標(biāo)題所述,WCF Dispatcher是整個(gè)WCF service mode layer的中樞,本篇文章講著重圍繞著WCF Dispatcher來展開介紹。

WCF Dispatcher并不是指的某一個(gè)對象,而是指完成整個(gè)dispatch功能的一組相關(guān)對象的總稱。這包括3個(gè)核心的對象:ChannelListener、ChannelDispatcher和EndpointDispatcher,和一些輔助的對象。

#T#ChannelListener 在本系列的前面兩個(gè)部分已經(jīng)進(jìn)行了詳細(xì)的介紹,我們知道其主要功能在于:綁定到一個(gè)固定的Listening URI,監(jiān)聽來自外界的請求。一旦請求抵達(dá),創(chuàng)建對應(yīng)的Channel接收Request message。但是我們的業(yè)務(wù)邏輯定義在一個(gè)個(gè)的service類中,所以WCF必須提供一種機(jī)制通過我們接收到的message去激活對應(yīng)service instance并調(diào)用對應(yīng)的方法。

對于的激活(Activation)包含兩種:創(chuàng)建一個(gè)新的service instance(PerCall instancing mode)和復(fù)用一個(gè)已經(jīng)存在的service Instance(PerSession 和Singleton instancing mode)。ChannelDispatcher的核心功能就是提供了這樣一種功能(盡管它還提供了其他的有用的功能,為了是內(nèi)容不至于太散,在這里就不再作相關(guān)的介紹)。

ChannelDispatcher通常和一個(gè)ChannelListener關(guān)聯(lián),而ChannelListener又對應(yīng)著一個(gè)固定的listening URI。對于一個(gè)被host的service來講,可能定義了不同的listening address,所以一個(gè)service一般對應(yīng)著一到多個(gè)ChannelDispatcher。更進(jìn)一步說,當(dāng)我們host一個(gè)service的時(shí)候,WCF會為之創(chuàng)建一個(gè)ServiceHostBase對象(ServiceHost或者是你自定義的繼承自ServiceHostBase的對象),所以一個(gè)ServiceHostBase對象對應(yīng)一到多個(gè)ChannelDispatcher對象。

對于接收到的request message,ChannelDispatcher不會自己對其進(jìn)行處理,而是將其分發(fā)到與之相匹配為的EndpointDispatcher上,所以處理message的的絕大部分功能實(shí)際上是由EndpointDispatcher來實(shí)現(xiàn)的。對于同一個(gè)listening address,我們一般會不止一個(gè)endpoint,所以一個(gè)ChannelDispatcher擁有不止一個(gè)EndpointDispatcher。對于EndpointDispatcher來講,有一個(gè)絕對絕對值得特別介紹的是DispatchRumtime。

DispatchRumtime和一個(gè)特定的EndpointDispatcher匹配,通過定制DispatchRumtime,你可以很容易地按照你具體的需要改變整個(gè)service或者某個(gè)具體的Operation相關(guān)的運(yùn)行時(shí)行為。對于WCF一門重要的課題, WCF extensions來講,你的絕大部分BehaviorExtesionElment,都是通過具體的Behavior對DispatchRumtime進(jìn)行定制而實(shí)現(xiàn)的。


當(dāng)前名稱:核心對象WCFDispatcher分析
文章轉(zhuǎn)載:http://m.5511xx.com/article/dpecdji.html