兩種WCF地址詳細(xì)對(duì)比
WCF是一個(gè)功能強(qiáng)大的應(yīng)用工具,它的出現(xiàn)給程序員們帶來了非常大的幫助。我們今天將會(huì)通過對(duì)WCF地址的兩種常見狀態(tài)的對(duì)比進(jìn)行分析,希望大家可以從中獲得一些幫助,并對(duì)WCF有一個(gè)更加深入的認(rèn)識(shí)。
WCF地址中,物理地址負(fù)責(zé)使用特定的傳輸協(xié)議在特定的位置接收傳入的消息,除非特別指定,否則邏輯地址將被用來做物理地址,換句話說,在以前我們對(duì)于終結(jié)點(diǎn)所配置的EndpointAddress都是指定了邏輯地址,如我們的服務(wù)端配置如下:
- < endpoint address="http://localhost:8887/CalculatorService1"
- binding ="wsHttpBinding"
- contract="TerryLee.WCFAddressing.Contract.ICalculator">
- < /endpoint>
- < endpoint address="http://localhost:8887/CalculatorService2"
- binding ="basicHttpBinding"
- contract="TerryLee.WCFAddressing.Contract.ICalculator">
- < /endpoint>
現(xiàn)在我們輸出一下,就可以看到兩個(gè)WCF地址是同樣的值,如下代碼所示:
- using (ServiceHost calculatorServiceHost =
- new ServiceHost(typeof(CalculatorService)))
- {
- calculatorServiceHost.Opened += delegate
- {
- Console.WriteLine("Service begin to listen via the Address:{0}",
- calculatorServiceHost.BaseAddresses[0].ToString());
- };
- calculatorServiceHost.Open();
- foreach (ServiceEndpoint se in calculatorServiceHost.
Description.Endpoints)- {
- Console.WriteLine("Endpoint details:");
- Console.WriteLine("Logical address: \t{0}", se.Address);
- Console.WriteLine("Physical address: \t{0}", se.ListenUri);
- Console.WriteLine("Binding: \t{0}", se.Binding.Name);
- Console.WriteLine();
- }
- Console.Read();
- }
以上就是對(duì)WCF地址的相關(guān)介紹。
【編輯推薦】