国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

WCF WS-Discovery應(yīng)用技巧分享

開發(fā) 開發(fā)工具
WCF WS-Discovery的目的就是為了定位服務(wù)定義Discovery協(xié)議,來為客戶端的搜索提供一定的幫助,其分為兩種模式,分別為:ad hoc和managed模式。

WCF是一款使用托管代碼建立的應(yīng)用程序統(tǒng)一框架。它在實(shí)際應(yīng)用中可以幫助開發(fā)人員輕松的實(shí)現(xiàn)一個(gè)安全性高,可依賴性的開發(fā)解決方案,輕松幫助用戶解決各種問題。在這里我們會(huì)為大家詳細(xì)介紹一下WCF WS-Discovery的相關(guān)應(yīng)用技巧。#t#

在WS-*標(biāo)準(zhǔn)和規(guī)范中,WCF WS-Discovery是在2008年才加入了OASIS標(biāo)準(zhǔn)。WS-Discovery在標(biāo)準(zhǔn)被定義為Web Service Dynamic Discovery,其目的是為定位服務(wù)定義Discovery協(xié)議,主要應(yīng)用在為客戶端動(dòng)態(tài)搜索一個(gè)或多個(gè)目標(biāo)服務(wù)。OASIS為WS- Discovery提供了兩種操作模式:ad hoc和managed模式。

ad hoc模式根據(jù)類型在托管目標(biāo)服務(wù)的范圍內(nèi)查找目標(biāo)服務(wù)。客戶端會(huì)以多播的形式發(fā)送一個(gè)Probe(探測)消息,如果服務(wù)匹配該信息,則以單播方式直接將響應(yīng)發(fā)送到客戶端。為了能夠根據(jù)名稱定位目標(biāo)服務(wù),客戶端會(huì)以相同的多播組發(fā)送一個(gè)Resolve(解析)消息,同樣的,匹配該消息的服務(wù)會(huì)直接以單播方式響應(yīng)客戶端。

如果Endpoint的數(shù)量擴(kuò)大了,且超出了ad hoc網(wǎng)絡(luò)的范圍之外,而且在網(wǎng)絡(luò)中可以使用Discovery Proxy(發(fā)現(xiàn)代理),則應(yīng)該采用Managed操作模式,以禁止多播的行為。在Managed模式下,目標(biāo)服務(wù)只需要以單播的形式發(fā)布一個(gè) announcement(通告)消息到Discovery Proxy,同時(shí),客戶端也會(huì)以單播形式發(fā)送Probe和Resolve消息到Discovery Proxy。這種模式并非直接采用單播方式,而是會(huì)實(shí)時(shí)對Discovery Proxy進(jìn)行監(jiān)聽,然后根據(jù)情況切換操作模式,從而降低多播給網(wǎng)絡(luò)傳輸帶來的影響。當(dāng)Discovery Proxy檢測到在ad hoc網(wǎng)絡(luò)中有多播方式發(fā)送的Probe和Resolve消息時(shí),它就會(huì)發(fā)布announcement通知自身。客戶端一旦監(jiān)聽到Discovery Proxy上的announcement消息,就切換為Managed模式,直接以單播方式將probe和resolve消息發(fā)送給Discovery Proxy。如果Discovery Proxy沒有響應(yīng),客戶端又會(huì)切換為ad hoc操作模式。Managed模式的消息交換流程如下所示:

 

WCF 4.0實(shí)現(xiàn)了OASIS的WCF WS-Discovery標(biāo)準(zhǔn),相關(guān)的類定義在System.ServiceModel.Discovery命名空間中。這是一個(gè)單獨(dú)的程序集,所以需要添加對它的引用。

 

WCF Discoverty支持ad hoc和Managed模式,其中實(shí)現(xiàn)Managed模式需要實(shí)現(xiàn)Discovery Proxy。

在WCF 4.0中,新增了ServiceDiscoveryBehavior行為類,可以控制服務(wù)終結(jié)點(diǎn)的可發(fā)現(xiàn)能力。它能夠讓服務(wù)的所有終結(jié)點(diǎn)都能被發(fā)現(xiàn),相反,如果使用EndpointDiscoveryBehavior則只能使特定的終結(jié)點(diǎn)能夠被發(fā)現(xiàn)。除了需要添加發(fā)現(xiàn)行為,我們還需要添加發(fā)現(xiàn)終結(jié)點(diǎn),用來指定監(jiān)聽以及發(fā)送discovery消息。WCF中標(biāo)準(zhǔn)的發(fā)現(xiàn)終結(jié)點(diǎn)類是UdpDiscoveryEndpoint,它基于UDP的多播綁定,是WCF 預(yù)先配置好的發(fā)現(xiàn)終結(jié)點(diǎn)。該終結(jié)點(diǎn)繼承自DiscoveryEndpoint類。在托管服務(wù)的時(shí)候,我們可以向ServiceHost中添加 ServiceDiscoveryBehavior和EndpointDiscoveryBehavior,如下所示:

  1. class CalculatorServiceHost {  
  2. public static void Main() {  
  3. Uri baseAddress = new Uri("http://localhost:8000/" + 
    Guid.NewGuid().ToString());   
  4. using (ServiceHost serviceHost = new ServiceHost(typeof
    (CalculatorService), baseAddress)) {  
  5. serviceHost.AddServiceEndpoint(typeof(ICalculatorService), 
    new WSHttpBinding(), String.Empty);  
  6. // Make the service discoverable over UDP multicast   
  7. serviceHost.Description.Behaviors.Add(new ServiceDiscoveryBehavior());   
  8. serviceHost.AddServiceEndpoint(new UdpDiscoveryEndpoint());  
  9. serviceHost.Open();  
  10. Console.WriteLine("Calculator Service started at {0}", baseAddress);  
  11. Console.WriteLine();  
  12. Console.WriteLine("Press <ENTER> to terminate the service.");  
  13. Console.WriteLine();  
  14. Console.ReadLine();  
  15. }  
  16. }  

 

在對服務(wù)宿主進(jìn)行如下設(shè)置之后,客戶端就可以通過發(fā)送Probe和Resolve消息來發(fā)現(xiàn)服務(wù)。WCF將這些邏輯封裝在了DiscoveryClient 類中。它接受一個(gè)發(fā)現(xiàn)終結(jié)點(diǎn)對象,然后通過調(diào)用它的Find()方法(該方法接受一個(gè)FindCriteria實(shí)例,用來指定搜索標(biāo)準(zhǔn),在下面的代碼片斷中指定搜索標(biāo)準(zhǔn)為按照目標(biāo)服務(wù)的類型),返回FindResponse對象。該對象會(huì)包含一個(gè) Collection<EndpointDiscoveryMetadata>類型的屬性Endpoints:

  1. // Create DiscoveryClient  
  2. DiscoveryClient discoveryClient = new DiscoveryClient
    (new UdpDiscoveryEndpoint());  
  3. Console.WriteLine("Finding ICalculatorService endpoints...");  
  4. Console.WriteLine();  
  5. // Find ICalculatorService endpoints   
  6. FindResponse findResponse = discoveryClient.Find
    (new FindCriteria(typeof(ICalculatorService)));  
  7. Console.WriteLine("Found {0} ICalculatorService endpoint(s).", 
    findResponse.Endpoints.Count);  
  8. Console.WriteLine();  
  9. if (findResponse.Endpoints.Count > 0) {  
  10. return findResponse.Endpoints[0].Address;  
  11. } else {  
  12. return null;  

 

通過WCF WS-Discovery,我們不需要知道WCF服務(wù)的終結(jié)點(diǎn),只要存在目標(biāo)服務(wù),我們就能夠動(dòng)態(tài)查找到該服務(wù)。即使服務(wù)的Url發(fā)生改變,我們也不需要修改任何代碼和配置文件,客戶端仍然能夠正常發(fā)現(xiàn)目標(biāo)服務(wù)。

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

2010-03-01 13:06:49

WCF繼承

2010-02-25 15:25:19

WCF通道

2010-02-22 17:21:02

WCF消息交換

2010-02-25 10:52:29

WCF響應(yīng)服務(wù)

2010-02-23 13:03:34

WCF序列化

2010-03-01 15:40:04

WCF實(shí)例停用

2010-03-02 10:50:57

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

2010-03-01 09:48:23

WCF會(huì)話服務(wù)

2010-02-26 10:46:12

WCF行為擴(kuò)展

2010-02-25 18:04:02

WCF IIS宿主

2010-03-01 17:52:03

WCF選擇綁定

2010-02-24 17:07:26

WCF序列化引擎

2010-02-22 17:58:06

WCF異步上傳

2010-02-22 11:25:50

WCF DateSet

2009-12-22 19:00:08

WCF回調(diào)

2010-02-24 11:22:04

WCF方法重載

2010-02-26 14:12:27

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

2010-02-23 16:46:47

WCF并發(fā)能力

2010-02-22 16:19:25

WCF自托管

2010-02-22 16:26:47

WCF傳輸數(shù)據(jù)
點(diǎn)贊
收藏

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

久久久久久久免费| 欧美3p视频| 俺也去精品视频在线观看| 欧美aaaaaaaa| 精品国产一区久久久| 欧美日韩麻豆| 国产厕所精品在线观看| 免费不卡在线观看| 久草资源站在线观看| 亚洲精品中文字幕在线观看| 超碰在线国产| 日韩网站免费观看| 欧美手机在线| 中文精品视频一区二区在线观看| 2014亚洲片线观看视频免费| 校园春色欧美| 亚洲天堂男人天堂女人天堂| 亚洲调教一区| 亚洲视频欧美在线| 日韩毛片高清在线播放| 三级福利片在线观看| 欧美高清videos高潮hd| 狠狠综合久久| 无码精品a∨在线观看中文| 狠狠久久亚洲欧美专区| 欧美aaaaaaa| 98视频在线噜噜噜国产| 亚洲日本视频| www.这里只有精品| 精品视频免费在线| 亚洲精品视频一二三区| 国产日韩精品久久| 日本一区二区三区四区 | 麻豆国产精品| 国产午夜精品在线| 中文字幕在线一区免费| 少女频道在线观看免费播放电视剧| 欧美激情免费看| 蜜桃在线一区二区三区| 在线免费看黄av| 久久久www成人免费精品| 最新成人av网站| 日本成本人片免费观看| 中文字幕亚洲无线码a| 伊人狠狠色j香婷婷综合| 国产九九在线观看| 亚洲午夜精品视频| 久久av一区| 飘雪影院手机免费高清版在线观看| 久久亚洲私人国产精品va| 青青草国产精品亚洲专区无| 成人福利视频导航| 欧美极品少妇xxxxⅹ免费视频| 激情文学综合丁香| 久久99精品久久久久久野外| 国产精品av在线播放| 91麻豆精东视频| 成人一级福利| 蜜桃av噜噜一区二区三| 疯狂做受xxxx欧美肥白少妇| 国产精品巨作av| 男女啪啪免费视频网站| 亚洲精品在线三区| 99精品欧美| 免费在线黄色网址| 国产精品一区二区三区久久 | 中文字幕亚洲一区二区三区五十路| 亚洲精品四区| 日韩电影免费| 国产精品丝袜久久久久久不卡| 久久精品夜色噜噜亚洲aⅴ| 中文在线最新版地址| 精品视频一区二区| 欧美午夜精品在线| 婷婷综合五月| 亚州色图欧美色图| 国产一区深夜福利| 亚洲一区二区在线免费观看视频| aaa国产精品视频| 国产精品沙发午睡系列| 精品亚洲一区二区三区在线播放 | 在线观看欧美一区| 欧美第一区第二区| 日韩福利电影在线观看| 日本三级视频在线播放| 国产伦精品一区| 午夜久久久久久久久久一区二区| 女人丝袜激情亚洲| 在线免费视频你懂得| 国产美女久久久| 欧美日韩国产精品一区二区三区四区| 久久亚洲精品中文字幕蜜潮电影| 探花国产精品| 成人a视频在线观看| 亚洲成国产人片在线观看| 日本一本不卡| 女人天堂在线| 精品一区二区三区视频日产| 欧美久久久久久久久| 青青草原综合久久大伊人精品优势 | 日韩福利在线观看| 天堂…中文在线最新版在线| 一级做a爰片久久毛片美女图片| 顶级嫩模精品视频在线看| 欧美国产日韩电影| 久久久久免费精品| 日本在线精品视频| 欧美午夜激情视频| 久久视频一区| 第四色男人最爱上成人网| 亚洲中文字幕无码专区| 亚州国产精品久久久| 一区二区在线观看免费| 一区二区三区毛片免费| 午夜在线视频播放| 亚洲第一页在线视频| 日韩在线观看免费| 亚洲色图第一区| 欧美激情1区| 91黄页在线观看| 37pao成人国产永久免费视频| 日本一欧美一欧美一亚洲视频| 在线日韩一区二区| 精品在线一区二区| 成人在线视频你懂的| 神马久久精品| 手机成人av在线| 久久青草福利网站| 欧美日韩三级一区| 成人av中文字幕| 久久婷婷蜜乳一本欲蜜臀| 日韩av毛片| 欧美网站免费观看| 国产有码在线一区二区视频| 精品av久久707| 国产精品久久久久久久岛一牛影视 | 欧美亚洲在线观看| 欧美日韩久久不卡| 99国产精品久久久久久久久久久 | 91麻豆精品激情在线观看最新| 国产1区2区3区| 就去色蜜桃综合| 久久久精品欧美| 色综合天天综合网天天狠天天| 蜜桃一区二区三区在线观看| 99香蕉久久| 成人a在线视频免费观看| 日本www.色| 免费看成人片| 欧美一级在线亚洲天堂| 国产系列第一页| 日韩av电影国产| 亚洲黄色av女优在线观看| 中文字幕视频一区| 麻豆精品网站| 亚洲人成亚洲精品| 18video性欧美19sex高清| 大陆一级毛片| 轻点好疼好大好爽视频| 成人字幕网zmw| 久久国产精品久久久久久久久久| 欧美日韩不卡一区二区| 欧美激情一区在线观看| 奇米影视在线99精品| 精品一区二区三| 国产精品无码久久久久| 超碰免费在线观看| 三上悠亚在线资源| 欧洲金发美女大战黑人| 99久re热视频这里只有精品6| 久久久久久久国产| 亚洲国产古装精品网站| 欧美日韩免费在线观看| 26uuu国产电影一区二区| 久久九九精品| 色喇叭免费久久综合| 超碰国产精品一区二页| 青青在线视频| 性欧美孕妇孕交| 妞干网免费视频| 可以看毛片的网址| 亚洲蜜桃av| 久久久婷婷一区二区三区不卡| 国产精品99久久久久久人| 国产视频丨精品|在线观看| 欧洲av在线精品| 亚洲一区二区三区不卡国产欧美| 99免费精品视频| 蓝色福利精品导航| 雨宫琴音一区二区在线| 999精品在线| 亚洲婷婷影院| 国产精品qvod| 欧美欧美在线| 青青久久精品| 久久国产精品一区| 亚洲激情综合网| 男操女免费网站| 久久久久久一区二区三区四区别墅| 国产欧美精品一区二区色综合|