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

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

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

      我的WCF之旅(9):如何在WCF中使用tcpTrace來進(jìn)行Soap Trace

      無論對(duì)于Web Service還是WCF,Client和Service之間交互的唯一形式是通過發(fā)送和接收Soap Message。在我們對(duì)Web Service和WCF進(jìn)行深入學(xué)習(xí)的時(shí)候,借助一些Soap Trace 工具對(duì)Soap Message進(jìn)行深入剖析是非常有必要的。在這些工具之中,我覺得最好用的就是Microsoft Soap Toolkit中的Soap Trace Utility和tcpTrace。我們今天就來講講如何在WCF中使用tcpTrace這個(gè)工具。

      首先我們來講講tcpTrace實(shí)現(xiàn)的基本原理。說的簡單點(diǎn)TcpTrace就是一個(gè)監(jiān)聽/轉(zhuǎn)發(fā)器(Listening/Forwarding)。當(dāng)我們啟動(dòng)這個(gè)工具的時(shí)候,通過設(shè)置它監(jiān)聽的Port,和它將要轉(zhuǎn)發(fā)的Host和Port(Destination Server& Destination Port),隨后它就開始在本機(jī)的Listening Port開始監(jiān)聽,如果這時(shí)候一個(gè)針對(duì)該Listening Port 的Http Request,它就會(huì)把Request的內(nèi)容取下來展現(xiàn)在我們的面前,隨后將該Request轉(zhuǎn)發(fā)到我們預(yù)先設(shè)定的Host和Port。

      對(duì)于WCF來說,如果Client要訪問Service,一般情況下交互的只有Client和Service,Soap Message直接從Client到Service。但是在某些情況,我們需要在Client和Service之間加入一些額外的節(jié)點(diǎn),我們把這些額外的節(jié)點(diǎn)Intermediary Node。我們可以通過這些Intermediary Node實(shí)現(xiàn)一些額外的功能,比如把不同的Request forward到不同的Server從而實(shí)現(xiàn)負(fù)載平衡(Load Balance)。按照面向服務(wù)的原則,服務(wù)具有高度的自治性(Automation),Soap Message一旦被Service發(fā)送出去,就不能再被該Service所控制,所以Soap來說,它需要具有高度的自描述性(Self-Describing),它自身必須包含所有必須的控制信息來指導(dǎo)任何接收到該Soap的節(jié)點(diǎn)如何去處理它。SOAP的無限擴(kuò)展的Header在實(shí)現(xiàn)此功能上可謂功不可沒,原則上任何控制信息都可以放在Soap Header之中,Header的可擴(kuò)展性也使一系列的WS-* Specification的實(shí)現(xiàn) 成為可能。對(duì)于每次的Message Exchange來說,尋址(Addressing)是首先需要解決的問題,在Intermediary Node的場景中,實(shí)際上涉及到兩個(gè)Address,其中一個(gè)是最終Service Endpoint的Address,另一個(gè)則是實(shí)際接收該Soap的Intermediary Node的Address。在WCF中通過ClientViaBehavior實(shí)現(xiàn)這樣的功能,我將在 后面講到。而我們今天所介紹的通過tcpTrace來獲取Soap的情況下,tcpTrace實(shí)際是就是充當(dāng)了Intermediary Node的角色。

      我們現(xiàn)在就來介紹如果使用tcpTrace。

      假設(shè)我們?cè)贚ocal host有一個(gè)Calculator Service, Endpoint的Address的Uri為:http://localhost:8888/Calculator(Port為8888)。為了使大家有一個(gè)具體的認(rèn)識(shí),我給出了Host該Service的configuration:

      <?xml version="1.0" encoding="utf-8" ?>
      <configuration>
          
      <system.serviceModel>
              
      <services>
                  
      <service name="Artech.ExceptionHandling.Service.CalculatorService">
                      
      <endpoint binding="wsHttpBinding" contract="Artech.ExceptionHandling.Contract.ICalculator" address="http://localhost:8888/Calculator" />                
                  
      </service>
              
      </services>
          
      </system.serviceModel>
      </configuration>

      在一般的情況下,Client具有下面一段對(duì)應(yīng)的Configuration(Port為8888)

      <?xml version="1.0" encoding="utf-8" ?>
      <configuration>
          
      <system.serviceModel>
              
      <client>
                  
      <endpoint address="http://localhost:8888/Calculator"                binding="wsHttpBinding" contract="Artech.ExceptionHandling.Contract.ICalculator"
                      name
      ="defualtEndpoint" />
              
      </client>
          
      </system.serviceModel>
      </configuration>

      上面實(shí)際上是Client直接和Service進(jìn)行交互的方式。現(xiàn)在我們需要做的是,先把Soap發(fā)送給tcpTrace,tcpTrace進(jìn)行Soap trace之后再把Soap Message傳到真正的Service。就需要一個(gè)特殊的Client端的Endpoint Behavior:ClientViaBehavior。假設(shè)tcpTrace進(jìn)行監(jiān)聽的Port為8080,那么Client實(shí)現(xiàn)了ClientViaBehavior的configuration將會(huì)是如下的樣子:

      <?xml version="1.0" encoding="utf-8" ?>
      <configuration>
          
      <system.serviceModel>
              
      <behaviors>
                  
      <endpointBehaviors>
                      
      <behavior name="calculatorEndpointBehavior">
                          
      <clientVia viaUri="http://localhost:8080/Calculator" />
                      
      </behavior>
                  
      </endpointBehaviors>
              
      </behaviors>
              
      <client>
                  
      <endpoint address="http://localhost:8888/Calculator" behaviorConfiguration="calculatorEndpointBehavior"
                      binding
      ="wsHttpBinding" contract="Artech.ExceptionHandling.Contract.ICalculator"
                      name
      ="defualtEndpoint" />
              
      </client>
          
      </system.serviceModel>
      </configuration>

      我們現(xiàn)在就可以來進(jìn)行Soap Trace了,現(xiàn)在我們啟動(dòng)tcpTrace。進(jìn)行如下的設(shè)置,Destination Server和Destination Port為Service Endpoint對(duì)應(yīng)的Host和Port。我們甚至還可以通過Log文件把Trace保存起來。


      然后先后運(yùn)行Service和Client,你將會(huì)在tcpTrace上看到他所截獲的Request和Response的內(nèi)容:


      而且相應(yīng)的內(nèi)容被記錄到我們指定的Log文件中:

      WCF相關(guān)內(nèi)容:
      [原創(chuàng)]我的WCF之旅(1):創(chuàng)建一個(gè)簡單的WCF程序
      [原創(chuàng)]我的WCF之旅(2):Endpoint Overview
      [原創(chuàng)]我的WCF之旅(3):在WCF中實(shí)現(xiàn)雙向通信(Bi-directional Communication)
      [原創(chuàng)]我的WCF之旅(4):WCF中的序列化(Serialization)- Part I
      [原創(chuàng)]我的WCF之旅(4):WCF中的序列化(Serialization)- Part II
      [原創(chuàng)]我的WCF之旅(5):Service Contract中的重載(Overloading)
      [原創(chuàng)]我的WCF之旅(6):在Winform Application中調(diào)用Duplex Service出現(xiàn)TimeoutException的原因和解決方案
      [原創(chuàng)]我的WCF之旅(7):面向服務(wù)架構(gòu)(SOA)和面向?qū)ο缶幊蹋∣OP)的結(jié)合——如何實(shí)現(xiàn)Service Contract的繼承
      [原創(chuàng)]我的WCF之旅(8):WCF中的Session和Instancing Management
      [原創(chuàng)]我的WCF之旅(9):如何在WCF中使用tcpTrace來進(jìn)行Soap Trace
      [原創(chuàng)]我的WCF之旅(10): 如何在WCF進(jìn)行Exception Handling
      [原創(chuàng)]我的WCF之旅(11):再談WCF的雙向通訊-基于Http的雙向通訊 V.S. 基于TCP的雙向通訊

      [原創(chuàng)]我的WCF之旅(12):使用MSMQ進(jìn)行Reliable Messaging
      [原創(chuàng)]我的WCF之旅(13):創(chuàng)建基于MSMQ的Responsive Service

      posted @ 2007-06-14 00:19  Artech  閱讀(27141)  評(píng)論(39)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产成人黄色自拍小视频| 亚洲高清WWW色好看美女| 久久精品久久黄色片看看| 丝袜人妻一区二区三区网站| 久久国产成人午夜av影院| 亚洲一区二区色情苍井空| 国产一区二区午夜福利久久| 日韩黄色av一区二区三区| 亚洲老熟女一区二区三区| 午夜福利yw在线观看2020| 体验区试看120秒啪啪免费| 黑森林福利视频导航| 天堂va蜜桃一区二区三区| 国产欧美va欧美va在线| 亚洲熟妇自偷自拍另类| 在线人人车操人人看视频| 久热这里只国产精品视频| 九九热在线观看视频精品| 极品蜜臀黄色在线观看| 99精品热在线在线观看视| 99国产精品白浆在线观看免费| 国产精品av免费观看| 最新国产AV最新国产在钱| 精品无码国产一区二区三区av| 一区二区三区av在线观看 | 男女爽爽无遮挡午夜视频| 四虎精品国产精品亚洲精| 国产成人99亚洲综合精品| 国产日韩精品视频无码| 国产精品99久久免费| 悠悠色成人综合在线观看| 亚洲色欲在线播放一区二区三区| 国产蜜臀久久av一区二区| 成人福利国产午夜AV免费不卡在线| 日韩中文字幕亚洲精品| 风韵丰满熟妇啪啪区老熟熟女| 日产中文字幕在线精品一区| 2021国产精品视频网站| 九色综合狠狠综合久久| 精品无码一区二区三区电影| 成人午夜在线观看刺激|