WCF物理地址如何进行正确设定

WCF中有一种叫做地址的应用技术。通过学习我们知道,WCF地址包括两种,一种为逻辑地址而另一种就是我们今天要为大家重点介绍的WCF物理地址。希望朋友们可以从中获得一些帮助。

设定WCF物理地址

前面我们输出的结果逻辑地址和物理地址是相同的,我们可以通过代码或者配置文件来设定终结点的物理地址。

 

 
 
 
  1. WSHttpBinding wsbinding = new WSHttpBinding();  
  2. calculatorServiceHost.AddServiceEndpoint(  
  3. typeof(ICalculator),  
  4. wsbinding,  
  5. "urn:calcservice", // 逻辑地址  
  6. new Uri("http://localhost:8887/CalculatorService") // 物理地址  
  7. ); 

又或者通过配置文件来设置ListenUri,如下代码所示:

 
 
 
  1. < endpoint address="urn:calcservice" 
  2. binding ="wsHttpBinding" 
  3. contract="TerryLee.WCFAddressing.Contract.ICalculator" 
  4. listenUri="http://localhost:8887/CalculatorService" 
  5. bindingConfiguration="securityBinding"> 
  6. < /endpoint> 

这里我们只需要注意的是在指定物理地址时,仍然可以使用相对地址,这一点与设置逻辑地址时是一样的。 #t#

WCF物理地址模式

了解了物理地址和逻辑地址之间的关系,我们再看一下在设置监听地址时的两种模式,通过ListenUriMode枚举来指定,它定义了两个枚举值:

Explicit:完全原样使用 ListenUri,默认值。

Unique:指定传输是否应使用特定传输机制,以确保 ListenUri 是***的

根据传输所采用的协议不同,WCF会采用不同的策略来保证ListenUri***,具体的策略如下所示:

1.非TCP传输,在ListenUri的末尾附加一个GUID。

2.对于独占模式下的 TCP(PortSharingEnabled 为 false),绑定到一个***可用端口号。

3.对于端口共享模式下的 TCP(PortSharingEnabled 为 true),在ListenUri的末尾附加一个GUID。

THE END