WCF专题系列(2):深入WCF寻址Part 2—自定义寻址报头2010-11-25 cnblogs terrylee在WCF专题系列(1):深入WCF寻址Part1一文中,我们对Web服务寻址规范做 了一些认识,了解了终结点引用和消息信息报头两种结构,该规范在Web服务中 的地位举足轻重,后续我们会经常提到该规范。在本文中,我们将继续深入WCF 寻址的内容,包括元数据中的终结点地址,自定义寻址标头等相关信息。终结点地址定义了解了Web服务寻址规范,再回到WCF,在WCF中,终 结点地址是由EndpointAddress类来表示的,它其中很重要的几个部分是:一个 表示服务地址的统一资源定位符 (URI),一个表示服务的安全标识的 Identity 和一个可选的 Headers 集合,其中Headers用于标识终结点或与终结点交互的更 多详细寻址信息。如图1所示:

图1记的我在WCF专题系列(1):深入WCF寻址Part1一文提到过 ,每个终结点引用都可以包含一些添加额外标识信息的引用参数,即寻址标头, 在 WCF 中,将这些引用参数建模为 AddressHeader 类的实例,这里的Headers 属性就是这些实例的集合,可以通过AddressHeader类提供的静态方法 CreateAddressHeader来创建一个AddressHeader实例,如下代码所示:
AddressHeader header = AddressHeader.CreateAddressHeader ("basic",
"http://www.cnblogs.com/terrylee", "Terrylee");
指定终结点地址在WCF中提供了基址技术 ,这使的我们在指定终结点地址时可以酌情选用相对地址或者绝对地址,指定绝 对地址的方法是在终结点定义中提供完全限定的地址,如下代码所示:
<service name="TerryLee.WCFAddressing.Service.CalculatorService"
behaviorConfiguration="calculatorBehavior">
<endpoint address="http://localhost:8887/CalculatorService"
binding ="basicHttpBinding"
contract="TerryLee.WCFAddressing.Contract.ICalculator"> </endpoint>
</service>