WCF是一个功能强大的应用工具,它的出现给程序员们带来了非常大的帮助。我们今天将会通过对WCF地址的两种常见状态的对比进行分析,希望大家可以从中获得一些帮助,并对WCF有一个更加深入的认识。
WCF地址中,物理地址负责使用特定的传输协议在特定的位置接收传入的消息,除非特别指定,否则逻辑地址将被用来做物理地址,换句话说,在以前我们对于终结点所配置的EndpointAddress都是指定了逻辑地址,如我们的服务端配置如下:
- < 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>
现在我们输出一下,就可以看到两个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();
- }
以上就是对WCF地址的相关介绍。
【编辑推荐】