2013-08-30 56 views
1

服务基地址和端点基地址有什么区别?WCF基地址

假设我有这样的服务的基地址:"http://hostname:port/svc1"和服务的端点配置了NetMsmqBinding,它需要一个传输方案“net.msmq”而不是“http”。这会导致WCF运行时出现异常,对吧?

但是,这意味着服务的所有端点都必须符合服务基地址中指定的传输方案,对吧?

有人可以帮助解决这个歧义吗?

回答

3

你可以有一个基地址每个方案 - 所以你可以为http定义一个基地址,另一个地址为net.tcp等等。

基地址是地址的基地 - 每个端点必须提供一个相对地址其中被添加到该基地址:

  • 基地址为httphttp://hostname:port/svc1
  • 基地址为net.tcpnet.tcp://hostname:port/tcp

  • 端点1:address="test1" - >完整的URL http://hostname:port/svc1/test1

  • 端点2:address="test2" - >完整的URL http://hostname:port/svc1/test2

  • 端点1为net.tcpaddress="tcp1" - >完整的URL net.tcp://hostname:port/tcp/tcp1

  • 端点2为net.tcpaddress="tcp2" - - >完整的URL net.tcp://hostname:port/tcp/tcp2

当然,即使有一个基地址到位,如果端点定义它自己的,完整地址,则该地址将被使用:

  • 端点3:address="http://hostname:port2/OtherService/EP1" - >在这种情况下,由于指定了一个完整的地址,所定义的基址为http适用,这完全合格的地址IS实际的,完整的端点地址