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

WCF終結(jié)點地址基本內(nèi)容概述

開發(fā) 開發(fā)工具
當(dāng)我們制定了WCF終結(jié)點地址時,可以酌情的選用相對地址以及絕對地址來為我們的開發(fā)提供幫助。我們將會在這里做一個詳細介紹。

WCF開發(fā)工具是一款功能強大的開發(fā)插件,其應(yīng)用技術(shù)也比較繁多,可以靈活的應(yīng)用在開發(fā)才過程中。其中,在WCF中提供了基址技術(shù),這使的我們在指定WCF終結(jié)點地址時可以酌情選用相對地址或者絕對地址,指定絕對地址的方法是在終結(jié)點定義中提供完全限定的地址,如下代碼所示:

  1. < service name="TerryLee.WCFAddressing.Service.CalculatorService" 
  2. behaviorConfiguration="calculatorBehavior"> 
  3. < endpoint address="http://localhost:8887/CalculatorService" 
  4. binding ="basicHttpBinding" 
  5. contract="TerryLee.WCFAddressing.Contract.ICalculator"> 
  6. < /endpoint> 
  7. < /service> 

使用絕對地址固然簡單,但是如果我們的服務(wù)需要公開多個終結(jié)點,而這些WCF終結(jié)點地址又具有相同的基地址時,也許相對地址是更好的選擇。在創(chuàng)建服務(wù)宿主對象時,提供一個基地址,如下代碼所示:

  1. using (ServiceHost calculatorServiceHost =  
  2. new ServiceHost(typeof(CalculatorService),  
  3. new Uri("http://localhost:8887/CalculatorService")))  
  4. {  
  5. calculatorServiceHost.Opened += delegate  
  6. {  
  7. Console.WriteLine("Service begin to listen via the Address:{0}",  
  8. calculatorServiceHost.BaseAddresses[0].ToString());  
  9. };  
  10. calculatorServiceHost.Open();  
  11. Console.Read();  

又或者同時在配置文件中指定基地址,這樣就無須在每個終結(jié)點中指定絕對地址了,如下代碼所示:

  1. < service name="TerryLee.WCFAddressing.Service.CalculatorService" 
  2. behaviorConfiguration="calculatorBehavior"> 
  3. < host> 
  4. < baseAddresses> 
  5. < add baseAddress="http://localhost:8887/Calculator"/> 
  6. < /baseAddresses> 
  7. < /host> 
  8. < endpoint address="myservice1" 
  9. binding ="basicHttpBinding" 
  10. contract="TerryLee.WCFAddressing.Contract.ICalculator"> 
  11. < /endpoint> 
  12. < endpoint address="myservice2" 
  13. binding ="wsHttpBinding" 
  14. contract="TerryLee.WCFAddressing.Contract.ICalculator"> 
  15. < /endpoint> 
  16. < /service> 

但請注意,基址技術(shù)是為我們在配置終結(jié)點時提供了方便,客戶端對它是毫無所知的,客戶端看到的仍然是絕對地址,在打開服務(wù)宿主時,它會匹配所有的相對地址,從而為每個終結(jié)點提供相應(yīng)的絕對地址,如上面的示例,可以在WSDL中看到:

  1. < wsdl:service name="CalculatorService"> 
  2. < wsdl:port name="BasicHttpBinding_ICalculator" 
    binding="tns:BasicHttpBinding_ICalculator"> 
  3. < soap:address location="http://localhost:8887/Calculator/myservice1" /> 
  4. < /wsdl:port> 
  5. < wsdl:port name="WSHttpBinding_ICalculator" 
    binding="tns:WSHttpBinding_ICalculator"> 
  6. < soap12:address location="http://localhost:8887/Calculator/myservice2" /> 
  7. < wsa10:EndpointReference> 
  8. < wsa10:Address>http://localhost:8887/Calculator/myservice2< /wsa10:Address> 
  9. < Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity"> 
  10. < Upn>TerryLee-PC\TerryLee< /Upn> 
  11. < /Identity> 
  12. < /wsa10:EndpointReference> 
  13. < /wsdl:port> 
  14. < /wsdl:service> 

如果在指定了基地址的情況下,有以下幾種情況:指定相對地址為空,WCF終結(jié)點地址與基地址相同;指定相對地址不為空,追加相對地址到基地址上;指定一個絕對地址,基地址不起作用,終結(jié)點地址仍然為指定的絕對地址;指定一個絕對地址和一個與基地址不同的綁定,基地址不起作用。現(xiàn)在有這樣一段配置信息:

  1. < service name="TerryLee.WCFAddressing.Service.CalculatorService" 
  2. behaviorConfiguration="calculatorBehavior"> 
  3. < host> 
  4. < baseAddresses> 
  5. < add baseAddress="http://localhost:8887/Calculator"/> 
  6. < /baseAddresses> 
  7. < /host> 
  8. < endpoint address="" 
  9. binding ="wsHttpBinding" 
  10. contract="TerryLee.WCFAddressing.Contract.ICalculator"> 
  11. < /endpoint> 
  12. < endpoint address="myservice2" 
  13. binding ="wsHttpBinding" 
  14. contract="TerryLee.WCFAddressing.Contract.ICalculator"> 
  15. < /endpoint> 
  16. < endpoint address="http://localhost:8886/CalculatorService" 
  17. binding ="wsHttpBinding" 
  18. contract="TerryLee.WCFAddressing.Contract.ICalculator"> 
  19. < /endpoint> 
  20. < endpoint address="net.tcp://localhost:8885/Calculator" 
  21. binding ="netTcpBinding" 
  22. contract="TerryLee.WCFAddressing.Contract.ICalculator"> 
  23. < /endpoint> 
  24. < /service> 

可以在ServiceHost啟動后,輸出所有的WCF終結(jié)點地址和綁定信息,如下代碼:

  1. ServiceDescription desc = calculatorServiceHost.Description;  
  2. foreach (ServiceEndpoint endpoint in desc.Endpoints)  
  3. {  
  4. Console.WriteLine("Endpoint - address: {0}", endpoint.Address);  
  5. Console.WriteLine(" binding: {0}", endpoint.Binding.Name);  
  6. Console.WriteLine(" contract: {0}", endpoint.Contract.Name);  

【編輯推薦】

  1. WCF尋址報頭經(jīng)驗之談
  2. WCF框架處理流程基本功能解析
  3. WCF服務(wù)加載實際應(yīng)用方法詳解
  4. AJAX WCF服務(wù)項模板正確使用方法介紹
  5. WCF返回值適用場景分析
責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-03-02 15:53:02

WCF服務(wù)合同

2010-02-25 17:51:04

WCF服務(wù)地址

2010-02-25 17:04:54

WCF實例上下文

2010-02-25 15:49:05

WCF消息模式

2010-03-02 11:10:43

WCF標(biāo)準終結(jié)點

2010-01-28 15:33:37

Android程序架構(gòu)

2010-02-06 13:58:13

C++ Bost庫

2010-02-02 15:12:09

C++ explici

2010-02-05 13:35:19

C++虛析構(gòu)函數(shù)

2010-01-04 15:21:37

Silverlight

2010-04-22 09:36:56

Oracle數(shù)據(jù)字典

2010-03-05 11:53:20

Python命名約定

2017-10-25 06:50:27

數(shù)據(jù)科學(xué)數(shù)據(jù)數(shù)據(jù)分析

2010-02-05 10:08:55

C++名字空間

2010-03-03 15:26:54

Python編碼規(guī)范

2010-02-04 15:51:07

C++迭代器

2009-12-21 10:44:32

2010-02-25 09:36:28

WCF行為控制

2010-05-11 14:19:52

MySQL 5.0

2010-04-12 12:52:54

WiMAX無線技術(shù)
點贊
收藏

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

主站蜘蛛池模板: 久久在线看| 日韩欧美久久 | 日韩欧美在线一区二区 | 五月婷婷视频 | 成人国产在线视频 | 中文二区 | 精品久久久久久久久久久久 | 亚洲自拍一区在线观看 | 欧美日韩a | 天天综合网永久 | 亚洲欧美在线一区 | 成人国产精品久久久 | 国产精品久久久久久吹潮 | 中文字幕精品视频 | 国产日韩欧美一区 | 国产精品久久久久久久久久免费 | 超碰日韩 | 欧美一区二区在线视频 | 91视频网 | 久久在线精品 | 亚洲精品视频免费观看 | 欧美一级高潮片免费的 | 免费在线黄 | 欧美日韩高清一区 | 亚洲天堂中文字幕 | 国产丝袜一区二区三区免费视频 | 久久婷婷香蕉热狠狠综合 | 亚州春色| 亚洲aⅴ| 精品国产一二三区 | 国产精品久久欧美久久一区 | 91中文字幕在线观看 | 日韩在线中文字幕 | 亚洲一区二区三区四区五区午夜 | 久久久久国产一区二区三区四区 | 午夜精品视频 | 亚洲 欧美 日韩在线 | 日韩亚洲一区二区 | 国产一区二区电影 | 成人影音| 欧美久久久久久久久中文字幕 |