<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

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

      前面的幾篇文章,分別介紹了WCF的基本知識和Endpoint的三個重要組成部分:Address,Contract,Binding。但無非管中窺豹而已,本文就闡述一下WCF的架構(gòu),從整體的角度來重新對WCF加深認(rèn)識。

       

      本文的出發(fā)點:

      通過閱讀本文,能使您獲得以下知識:

      1. WCF的架構(gòu)圖
      2. WCF架構(gòu)的關(guān)鍵元素及其概念
      3. 創(chuàng)建一示例程序,并對其按架構(gòu)圖進(jìn)行解析

         

      本文適合的讀者:

      本文適合WCF初學(xué)者,以前可以對WCF一無所知,本文只作介紹,不涉及WCF技術(shù)具體技術(shù)難點和介紹。

       

      WCF的架構(gòu)圖

      下圖為WCF的架構(gòu)圖:

       

      WCF架構(gòu)的關(guān)鍵元素及其概念

      Contracts and Description (協(xié)定和說明):

      協(xié)定定義消息系統(tǒng)的各個方面。包括Data Contract(數(shù)據(jù)協(xié)定),Message Contract(消息協(xié)定) ,Service Contract(服務(wù)協(xié)定)。Data Contract是WCF中 Service與Client端之間用來交換的數(shù)據(jù)的格式定義,它采用Xml 架構(gòu)定義語言(XSD)來定義,使得服務(wù)端和客戶端都能理解數(shù)據(jù)格式定義。消息協(xié)定能定義消息的特定部分,默認(rèn)情況下 ,WCF的消息是由固定格式的,但某些情況下,也可以使用Message Contrace來自定義消息格式。服務(wù)協(xié)定指定服務(wù)端公開的方法簽名,這些方法能夠在遠(yuǎn)程被調(diào)用。舉個國家和間諜的例子,A 是國家C派往其它國家的一名間諜,他負(fù)責(zé)收集情報,被通過某種特定的渠道,將獲得的情報發(fā)送給國家C,假如A在出去執(zhí)行任務(wù)之前,國家C的特工部門為其編訂了一套密文,這個密文只有國家C和特工部門和A知道具體含義,這些密文正是在A與其國家之間進(jìn)行傳遞的數(shù)據(jù),國家C對密文的制定,正是WCF中對交換數(shù)據(jù)格式的定義,屬于Data Contract范疇,而A在獲得情報之后,通過電報的方式將情報發(fā)回給國家情報機(jī)關(guān),它首先設(shè)置電報的發(fā)送地址并注明來源,并且將情報信息編碼成密文進(jìn)行發(fā)送,對電報報文的格式定義就屬于Message Contract范疇,而國家情報機(jī)關(guān)為A要想接受和對A發(fā)送任務(wù)命令,必須也提供固定的通訊設(shè)施和人,這些能夠被A所聯(lián)絡(luò)上的通訊設(shè)施和人就屬于Service Contract的范疇。

      Service Runtime(服務(wù)運(yùn)行時)

      上面說的協(xié)定是在開發(fā)wcf服務(wù)時候制定的,而服務(wù)運(yùn)行時,是在服務(wù)實際運(yùn)行時候地一些行為控制。ErrorBehavior是在服務(wù)出現(xiàn)錯誤的時候發(fā)生的操作,ThrottingBehavior能夠限制創(chuàng)建多少個實例和會話,通過這個您能夠控制WCF服務(wù)的性能,MetaBehavior(元數(shù)據(jù)行為)控制是否和如何向外部提供元數(shù)據(jù)。TransactionBehavior能定義事務(wù)性,使得當(dāng)發(fā)生異常的時候能進(jìn)行回滾。DispatchBehavior(調(diào)度行為)能控制WCF處理消息的方式,通過擴(kuò)展性功能可以自定義運(yùn)行時進(jìn)程。 例如,消息檢查功能用于檢查消息的各個部分,使用參數(shù)篩選功能可以根據(jù)作用于消息頭的篩選器來執(zhí)行預(yù)設(shè)操作。下圖顯示了WCF的消息處理流程

       

      Messaging(消息傳遞)

      在WCF中,消息是在通道(Channel)中進(jìn)行傳遞的。通道是以某種方式對消息進(jìn)行處理的組件 。一組通道可以組合成"通道堆棧",主要有兩大種通道:協(xié)議通道和傳輸通道。協(xié)議通道說明數(shù)據(jù)的格式和交換模式,WS-Security 是對在消息層啟用安全性的 WS-Security 規(guī)范的實現(xiàn)。 通過 WS-Reliable Messaging 通道可以保證消息的傳遞。 編碼器提供了大量的編碼,可使用這些編碼來滿足消息的需要。 HTTP 通道指定應(yīng)使用超文本傳輸協(xié)議來傳遞消息。 同理,TCP 通道指定 TCP 協(xié)議。 事務(wù)流通道控制已經(jīng)過事務(wù)處理的消息模式。 通過命名管道通道可以進(jìn)行進(jìn)程間通信。 使用 MSMQ 通道可以與 MSMQ 應(yīng)用程序進(jìn)行互操作。

      Activation and Hosting(激活和承載)

      WCF服務(wù)的最終形式仍然是程序,它能夠"自承載",也可以寄宿到其它應(yīng)用程序之中 ,如IIS,Windows激活服務(wù),Com+等。

       

      創(chuàng)建一示例程序,并對其按架構(gòu)圖進(jìn)行解析

      創(chuàng)建一個最簡單的WCF服務(wù),并利用上述的架構(gòu)對其解析

      打開vs2008,創(chuàng)建一個Wcf Application,命名為WcfSample1 ,如下圖所示:

      我們就利用系統(tǒng)模板產(chǎn)生的文件來進(jìn)行解析,完成上步中,會自動產(chǎn)生如下的項目:

      打開IService.cs,

      為了簡單的闡述MessageContract,我們新建一個CustomMessage.cs,代碼如下:

      為使用該服務(wù),我們再創(chuàng)建一個ServiceContract接口和其具體實現(xiàn),分別為:IMessagingHello.cs和MessageHello.svc

      在web.config作如下的配置:

      創(chuàng)建一個客戶端應(yīng)用項目Client用于消費(fèi)上面創(chuàng)建的服務(wù),創(chuàng)建項目后,添加Service引用,如下圖所示:

      分別添加對MessageHello.svc和Service1.svc的引用后,在programe.cs中添加如下代碼:

      用tcpTrace來監(jiān)聽自定義報文,可以得到

      發(fā)送的消息報文為:

      <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><HelloGreetingMessage xmlns="http://tempuri.org/"><Salutations xmlns="http://jillzhang.cnblogs.com">jillzhang</Salutations></HelloGreetingMessage></s:Body></s:Envelope>

      而接受到消息報文為:

      <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><h:OutOfBandData s:mustUnderstand="1" xmlns:h="http://jillzhang.cnblogs.com">Served by object 63334862.</h:OutOfBandData></s:Header><s:Body><HelloResponseMessage xmlns="http://tempuri.org/"><ResponseToGreeting xmlns="http://jillzhang.cnblogs.com">Service received: jillzhang</ResponseToGreeting></HelloResponseMessage></s:Body></s:Envelope>

      從而可知MessageContract已經(jīng)起了作用。

      有關(guān)如何用tcpTrace監(jiān)視消息報文,參見:http://www.rzrgm.cn/artech/archive/2007/06/14/782845.html

       

      本文參考文章

      1. http://www.rzrgm.cn/artech/archive/2007/06/14/782845.html
      2.  

      本文示例項目

      1. 服務(wù)端和客戶端: /Files/jillzhang/WcfSample1.rar
      2. 自定義消息的log文件: /Files/jillzhang/cumtommsg.txt
      posted @ 2008-02-16 21:59  Robin Zhang  閱讀(30673)  評論(36)    收藏  舉報
      主站蜘蛛池模板: 99精品国产在热久久无| 八宿县| 四虎女优在线视频免费看| 中文字幕理伦午夜福利片| 欧美成人看片一区二区三区尤物| 精品av一区二区三区不卡| 日韩在线成年视频人网站观看| 衡阳市| 国产二区三区不卡免费| 日韩大片一区二区三区| 免费的特黄特色大片| 日本中文一二区有码在线| 国产成人精品一区二区三区无码| 久久夜色精品国产亚洲a| 亚洲国产良家在线观看| 少妇熟女久久综合网色欲| 国产台湾黄色av一区二区| 777天堂麻豆爱综合视频| 久久天天躁狠狠躁夜夜躁2o2o| 宝贝腿开大点我添添公口述视频| 激情亚洲一区国产精品| 婷婷色综合成人成人网小说| 国产色无码专区在线观看| 精品国产三级a∨在线欧美| 综合欧美视频一区二区三区| 国产在线观看免费观看| 久久夜色撩人精品国产av| 婷婷五月综合丁香在线| 亚洲va久久久噜噜噜久久狠狠| 宜阳县| 国产乱码精品一区二三区| 99999久久久久久亚洲| 久久夜色撩人精品国产av| 少妇熟女久久综合网色欲| 日韩日韩日韩日韩日韩| 亚洲一级片一区二区三区| 69天堂人成无码免费视频| 国产自在自线午夜精品 | 国产精品户外野外| 色吊丝中文字幕在线观看| 亚洲精品中文字幕无码蜜桃|