WCF 服务的ABC之地址(五)

地址 Address

在WCF中,每个服务都有一个唯一的地址(Address)。

地址包含两个重要的元素:服务位置及传输协议。

服务位置包含目标机器名、站点、通信端口、管道(或队列),以及一个可选的特定路径或URI。

 

WCF支持下列传输协议

HTTP/HTTPS

  • HTTP地址可以使用http/https协议传输。如:
  • http://localhost:81
  • HTTP地址默认端口为80,HTTPS则为443。
  • HTTP地址可以共享一个端口,甚至一台机器

TCP

  • TCP地址采用net.tcp协议进行传输,通常它还包括端口。如:
  • net.tcp://localhost:81/MyService
  • TCP默认端口号为808
  • 两个TCP地址可以共享一个端口

IPC

  • IPC(进程间通信)地址使用net.pipe协议进行传输,它将使用Windows的命名管道机制。
  • 在WCF中命名管道机制的服务只能接受来自同一台机器的调用,使用时必须指定明确的本地机器名或者直接命名为localhost,为管道名提供唯一的标识字符串:
  • net.pipe://localhost/MyPipe
  • 在同一台机器只能打开一个命名通道,因此,两个命名通道地址在同一台机器上不能共用一个管道名。

Peer network(对等网)

MSMQ

  • MSMQ地址使用net.msmq协议进行传输,即使用微软消息队列机制。
  • 使用时必须为MSSQ地址指定队列名。如果是处理私有队列,则必须指定队列类型,但是对公有队列,队列类型可以省略:
  • net.msmq://localhost/private/MyService
  • net.msmq://localhost/MyService

Service bus

  • Windows Azure AppFabric服务总线使用sb、http或https协议传输
  • 服务总线地址必须包括服务命名空间。如:
  • sb://MyNameSpace.servicebus.windows.net/
  • 如下一些地址通信示例
    • http://localhost:81
    • http://localhost:81/MyService
    • net.tcp://localhost:81/MyService
    • ......

地址通信通常采用以下格式

[基地址]/[可选的URI]

基地址通常采用以下格式

[传输协议]://[机器名或域名][:可选端口]

上一篇:基于Visual Studio .NET2015的单元测试


下一篇:WCF全面解析第二章 地址(Adress)