成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WCF tcpTrace實現功能淺析

開發 開發工具
首先,我們將會通過本文介紹的內容了解到WCF tcpTrace的基本原理,以及他的相關應用技巧,讓大家從更深入的層次來了解這一應用。

大家知道,在WCF這樣一個基于通信的.NET開發工具,它的出現給我們帶來了非常大的幫助。而且這一工具中的很多功能也是值得我們去深入探討的。比如今天為大家介紹的WCF tcpTrace就是其中一個比較重要的應用。#t#

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

首先我們來講講WCF tcpTrace實現的基本原理。說的簡單點TcpTrace就是一個監聽/轉發器(Listening/Forwarding)。當我們啟動這個工具的時候,通過設置它監聽的Port,和它將要轉發的Host和Port(Destination Server& Destination Port),隨后它就開始在本機的Listening Port開始監聽,如果這時候一個針對該Listening Port 的Http Request,它就會把Request的內容取下來展現在我們的面前,隨后將該Request轉發到我們預先設定的Host和Port。

對于WCF來說,如果Client要訪問Service,一般情況下交互的只有Client和Service,Soap Message直接從Client到Service。但是在某些情況,我們需要在Client和Service之間加入一些額外的節點,我們把這些額外的節點Intermediary Node。我們可以通過這些Intermediary Node實現一些額外的功能,比如把不同的Request forward到不同的Server從而實現負載平衡(Load Balance)。

按照面向服務的原則,服務具有高度的自治性(Automation),Soap Message一旦被Service發送出去,就不能再被該Service所控制,所以Soap來說,它需要具有高度的自描述性(Self-Describing),它自身必須包含所有必須的控制信息來指導任何接收到該Soap的節點如何去處理它。SOAP的無限擴展的Header在實現此功能上可謂功不可沒,原則上任何控制信息都可以放在Soap Header之中,Header的可擴展性也使一系列的WS-* Specification的實現 成為可能。

對于每次的Message Exchange來說,尋址(Addressing)是首先需要解決的問題,在Intermediary Node的場景中,實際上涉及到兩個Address,其中一個是最終Service Endpoint的Address,另一個則是實際接收該Soap的Intermediary Node的Address。在WCF中通過ClientViaBehavior實現這樣的功能,我將在 后面講到。而我們今天所介紹的通過tcpTrace來獲取Soap的情況下,WCF tcpTrace實際是就是充當了Intermediary Node的角色。

我們現在就來介紹如果使用tcpTrace。

假設我們在Local host有一個Calculator Service, Endpoint的Address的Uri為:http://localhost:8888/Calculator(Port為8888)。為了使大家有一個具體的認識,我給出了Host該Service的configuration:

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

 

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

 

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

 

上面實際上是Client直接和Service進行交互的方式?,F在我們需要做的是,先把Soap發送給tcpTrace,tcpTrace進行Soap trace之后再把Soap Message傳到真正的Service。就需要一個特殊的Client端的Endpoint Behavior:ClientViaBehavior。假設WCF tcpTrace進行監聽的Port為8080,那么Client實現了ClientViaBehavior的configuration將會是如下的樣子:

  1. < ?xml version="1.0" encoding="utf-8" ?> 
  2. < configuration> 
  3. < system.serviceModel> 
  4. < behaviors> 
  5. < endpointBehaviors> 
  6. < behavior name="calculatorEndpointBehavior"> 
  7. < clientVia viaUri="http://localhost:8080/Calculator" /> 
  8. < /behavior> 
  9. < /endpointBehaviors> 
  10. < /behaviors> 
  11. < client> 
  12. < endpoint address="http://localhost:8888/Calculator" 
    behaviorConfiguration="calculatorEndpointBehavior" 
  13. binding="wsHttpBinding" contract="Artech.ExceptionHandling
    .Contract.ICalculator"
     
  14. name="defualtEndpoint" /> 
  15. < /client> 
  16. < /system.serviceModel> 
  17. < /configuration> 

 

我們現在就可以來進行Soap Trace了,現在我們啟動WCF tcpTrace。進行如下的設置,Destination Server和Destination Port為Service Endpoint對應的Host和Port。我們甚至還可以通過Log文件把Trace保存起來。

責任編輯:曹凱 來源: 博客園
相關推薦

2009-11-05 11:23:08

WCF宿主

2010-02-24 10:41:28

WCF服務保護

2009-12-08 15:06:33

WCF傳輸DataSe

2010-02-22 14:28:35

WCF實現loadin

2010-02-24 16:39:27

WCF客戶端處理

2010-04-20 14:31:29

負載均衡功能

2009-11-06 15:41:25

WCF自托管宿主

2009-06-16 11:49:00

JQuery實現loaWCF

2010-02-22 10:52:34

PDA訪問WCF

2010-03-01 18:04:35

WCF配置綁定

2010-03-02 09:24:22

WCF變更行為

2009-11-02 12:46:15

Winform

2009-11-09 16:25:24

WCF Data Co

2009-12-04 17:35:51

WCF 服務

2009-12-08 14:28:16

XTemplate +

2010-02-23 09:51:32

WCF MTOM

2010-03-30 08:40:36

WCF

2009-09-11 10:44:07

JavaScript實

2009-12-07 10:27:51

WCF分頁

2009-09-04 09:27:48

C#調用瀏覽器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人久久18免费网站图片 | 最新伦理片 | 黄色毛片大全 | 美国一级毛片a | 久久不卡视频 | 欧美久久久网站 | 亚洲视频一区在线观看 | 97国产在线视频 | www.婷婷 | av在线免费观看网站 | 二区视频 | 亚洲福利在线观看 | 成人不卡视频 | 一区二区三区国产好 | 国产精品亚洲第一区在线暖暖韩国 | 精品国产伦一区二区三区观看体验 | 国产精品欧美一区二区三区 | 免费特黄视频 | 尤物在线 | 91av在线免费播放 | 每日更新av | 欧美一二三 | 国产在线观看网站 | 欧美精品中文字幕久久二区 | 欧美三区| 亚洲福利一区二区 | 日韩欧美国产成人一区二区 | 亚洲精品久久久久久一区二区 | 国产精品69毛片高清亚洲 | 欧美电影在线观看网站 | 午夜影院在线视频 | 罗宾被扒开腿做同人网站 | 少妇黄色 | 国产视频第一页 | 在线成人www免费观看视频 | www.se91| 黄视频欧美 | 日韩电影免费观看中文字幕 | av中文字幕在线观看 | 情侣黄网站免费看 | 色吊丝2288sds中文字幕 |