WCF基地址

时间:2013-08-30 08:27:39

标签: wcf

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

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

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

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

1 个答案:

答案 0 :(得分:3)

您可以为每个方案设置一个基本地址 - 这样您就可以为http定义一个基地址,为net.tcp定义另一个基地址,依此类推。

基地址是地址的基础 - 每个端点都必须提供相对地址,并将其添加到此基地址中:

  • http的基地址:http://hostname:port/svc1
  • net.tcp的基地址:net.tcp://hostname:port/tcp

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

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

  • net.tcp的端点1:address="tcp1" - >完整网址net.tcp://hostname:port/tcp/tcp1

  • net.tcp的端点2:address="tcp2" - >完整网址net.tcp://hostname:port/tcp/tcp2

当然,即使有了基地址,如果端点定义了它自己的完整地址,那么将使用该地址:

  • 端点3:address="http://hostname:port2/OtherService/EP1" - >在这种情况下,由于指定了完整地址,因此http的已定义基址将,并且此完全限定地址 IS 是实际的完整端点地址