地址 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]
基地址通常采用以下格式
[传输协议]://[机器名或域名][:可选端口]