WCF终结点的逻辑地址和物理地址
在WCF中,每个终结点都包含两个不同的地址——逻辑地址和物理地址。逻辑地址就是终结点Address属性表示的地址。至于物理地址,对于消息发送放来讲,就是消息被真正发送的目的地址;而对于消息的接收放来讲,就是监听器真正监听的地址。
Address属性代表SOAP消息报头的<To>消息寻址属性
物理地址是消息发送的真正的目标地址信道分发器在循环每个终结点分发器时,会调用终结点分发器的AddressFilter和ContractFilter两个消息过滤器,其中Address属性代表的地址属于AddressFilter过滤器需要选择的<To>报头地址,默认情况下两者匹配才能进行通信,此时物理地址可以相同也可以不同,它取决于消息应该发送给哪个目标节点,最终还是要通过Address属性地址进行过滤,两者是完全独立的。
默认情况下终结点的逻辑地址和物理地址是相同的,可以通过【ServiceBehaivior】属性设置AddressFilterMode的值,如果AddressFilterMode.Any则可以不用考虑两者是否相同,都能匹配成功。