[計(jì)算機(jī)]WCF從理論到實(shí)踐4:路在何方_第1頁(yè)
[計(jì)算機(jī)]WCF從理論到實(shí)踐4:路在何方_第2頁(yè)
[計(jì)算機(jī)]WCF從理論到實(shí)踐4:路在何方_第3頁(yè)
[計(jì)算機(jī)]WCF從理論到實(shí)踐4:路在何方_第4頁(yè)
[計(jì)算機(jī)]WCF從理論到實(shí)踐4:路在何方_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.WCF從理論到實(shí)踐(4):路在何方本文的出發(fā)點(diǎn) 通過(guò)閱讀本文,您能了解以下知識(shí): 1. Address是什么? 2. Address的組成? 3. 如何在配置文件中指定Address? 4. 如何通過(guò)編程方式設(shè)置Address? 5. Address有什么特殊應(yīng)用?  本文適合的讀者 適合WCF初學(xué)者,可以沒(méi)有任何SOA和其他分布式開發(fā)經(jīng)驗(yàn)  Address是什么? 一個(gè)要和服務(wù)端通訊的客戶端要做的第一件事情,就是搞清數(shù)據(jù)要發(fā)給誰(shuí)?目的地在哪?而Address正是通過(guò)一個(gè)Uri來(lái)唯一標(biāo)示一個(gè)WCF的終節(jié)點(diǎn)(EndPoint)的,它標(biāo)示了消息發(fā)送的目的地。在WCF 數(shù)據(jù)通訊

2、中,它解決了服務(wù)在哪里的問(wèn)題。  Address的組成? Address在WCF中的用System.ServiceModel.EndpointAddress對(duì)象來(lái)表示的,它的結(jié)構(gòu)如下:  組成部分作用Uri指示EndPoint的地址,是必須的Identity能保證地址的唯一性,當(dāng)Uri一致的時(shí)候,可以用Identity來(lái)區(qū)分EndPoint,可有可無(wú)Headers為地址提供了一些附加信息,用于SoapMessage Filter,最后會(huì)添加到Soap消息的Header中此外,Address還包括IsAnonymous屬性,用于指示終節(jié)點(diǎn)是否能匿名訪問(wèn)。  如何在配

3、置文件中指定Address? 在配置文件中,有兩種方式可以指定Address,一種是絕對(duì)地址方式,另外是相對(duì)地址方式,分別如下: 絕對(duì)地址  <host>          <baseAddresses>            <add baseAddress = "http:/localhost:

4、8731/" />          baseAddresses>   host>   <endpoint address ="http:/localhost:8731/Service" binding="basicHttpBinding" contract="Wcf_Address_Config.ISe

5、rvice1"> endpoint>相對(duì)地址  <host>          <baseAddresses>            <add baseAddress = "http:/localhost:8731/" /> 

6、60;        baseAddresses>  host>  <endpoint address ="Service1" binding="basicHttpBinding" contract="Wcf_Address_Config.IService1">endpoint>在網(wǎng)上有人說(shuō)絕對(duì)地址是通過(guò)將httpGetEnabled設(shè)置為true

7、,并且設(shè)置httpGetUrl為絕對(duì)地址是在設(shè)置endPoint的說(shuō)法有些不準(zhǔn)確,因?yàn)樵赪CF中有兩種地址,一種是訪問(wèn)endPoint時(shí)候用到地址,另外一種是服務(wù)描述的地址,服務(wù)描述在wcf中被稱作serviceMetadata,通過(guò)它能夠產(chǎn)生代理類,比如,我們做如下的設(shè)置:   <serviceMetadata httpGetEnabled="True" httpGetUrl="http:/localhost:8731/Service"/>只代表在http:/localhost:8731/Servic

8、e/?wsdl上能找到服務(wù)描述,可以通過(guò)http:/localhost:8731/Service/?wsdl生成代理類,而不是將endPoint的地址設(shè)置為了http:/localhost:8731/Service,這點(diǎn)一定要注意,不要受有些說(shuō)法的誤導(dǎo)。  如何通過(guò)編程方式設(shè)置Address? 除了能在配置中設(shè)置Address外 ,還可以通過(guò)編程的方式來(lái)設(shè)置Address,具體方法請(qǐng)參參見(jiàn)下面的代碼示例:  static void Main(string args)      

9、0;             EndpointAddress address = new EndpointAddress(":2136/Service1");                  

10、60;    Binding binding = new BasicHttpBinding();            wcf.IService1 service = new wcf.Service1Client(binding, address);            Console.WriteLine(service.GetData(2);            Console.Read();        上面的代碼就是將endPoint的地址設(shè)置為了:2136/Service1  Address有什么特殊應(yīng)用? 在wcf中,能夠?qū)⒎?wù)同時(shí)發(fā)布到幾個(gè)地址上

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論