WCF Endpoint作用體現(xiàn)
WCF是由微軟公司開(kāi)發(fā)的一種功能強(qiáng)大的開(kāi)發(fā)插件,主要應(yīng)用于.NET Framework 3.5,可以幫助我們實(shí)現(xiàn)許多特定的功能需求。在這里我們竟會(huì)為大家詳細(xì)介紹一下有關(guān)WCF Endpoint的相關(guān)應(yīng)用方法。#t#
每一個(gè) WCF 服務(wù)都會(huì)關(guān)系到地址(Address)、綁定(Binding)和契約(Contract),而 WCF 則通過(guò) Endpoint 將 ABC 三個(gè)方面聯(lián)系在一起。每一個(gè) Endpoint 都必須包括 ABC 三個(gè)方面,缺一不可,而 host 進(jìn)程會(huì)提供WCF Endpoint供客戶(hù)端調(diào)用。每個(gè) Endpoint 都對(duì)應(yīng)一個(gè)唯一地址,但是多個(gè) Endpoint 可以共享相同的綁定和契約,每個(gè)服務(wù)又可以提供多個(gè) Endpoint 供客戶(hù)端掉用。
使用配置文件
再次體現(xiàn) Microsoft 的傻瓜式編程。唯一值得注意的地方是在 service 節(jié)點(diǎn)中添加了 behaviorConfiguration 屬性。
- < ?xml version="1.0"?>
- < configuration xmlns="http://schemas.microsoft.com/.
NetConfiguration/v2.0">- < system.serviceModel>
- < services>
- < !--< service name="MyService"
behaviorConfiguration="returnFaults">- < endpoint contract="IMyService" binding="wsHttpBinding"/>
- < /service>-->
- < service name="Anrs.Service.AnrsService"
behaviorConfiguration="returnFaults">- < endpoint contract = "Anrs.Service.IAnrsServiceContract1"
- binding = "wsHttpBinding"
- address = "http://localhost:4021/AnrsServiceByIIS/AnrsService/" />
- < /service>
- < /services>
- < behaviors>
- < serviceBehaviors>
- < behavior name="returnFaults" >
- < serviceMetadata httpGetEnabled="true">< /serviceMetadata>
- < serviceDebug includeExceptionDetailInFaults="true" />
- < /behavior>
- < /serviceBehaviors>
- < /behaviors>
- < /system.serviceModel>
- < system.web>
- < compilation debug="true"/>
- < /system.web>
- < /configuration>
使用配置文件的好處自不待言,無(wú)論是修改了服務(wù)的地址、綁定還是契約,都不需要重新編譯甚至部署。配置完成后,就能在瀏覽器中看到如下的畫(huà)面了。
編程控制WCF Endpoint
相對(duì)于配置文件的簡(jiǎn)單,編程控制 Endpoint 也不會(huì)多幾行代碼。下面的代碼就相當(dāng)于上面的配置文檔。
- using System;
- using System.ServiceModel;
- using System.ServiceModel.Channels;
- namespace Anrs.Service
- {
- class Program
- {
- static void Main(string[] args)
- {
- ServiceHost sh = new ServiceHost(typeof(AnrsService));
- Binding wsHttpBinding = new WSHttpBinding();
- sh.AddServiceEndpoint(typeof(IAnrsServiceContract1),
- wsHttpBinding,
- new Uri("http://localhost:8086/AnrsService/"));
- sh.Open();
- Console.Write("Press any key to exit");
- Console.ReadLine();
- sh.Close();
- }
- }
- }
WCF Endpoint的相關(guān)內(nèi)容就為大家介紹到這里。