服务基地址和端点基地址有什么区别?
假设我有一个这样的服务基地址:"http://hostname:port/svc1"
并且服务的端点配置了 NetMsmqBinding,它需要传输方案“net.msmq”而不是“http”。这会导致 WCF 运行时出现异常,对吗?
但是,这意味着服务的所有端点都必须符合服务基地址中指定的传输方案,对吗?
有人可以帮助解决这个歧义吗?
服务基地址和端点基地址有什么区别?
假设我有一个这样的服务基地址:"http://hostname:port/svc1"
并且服务的端点配置了 NetMsmqBinding,它需要传输方案“net.msmq”而不是“http”。这会导致 WCF 运行时出现异常,对吗?
但是,这意味着服务的所有端点都必须符合服务基地址中指定的传输方案,对吗?
有人可以帮助解决这个歧义吗?
每个方案可以有一个基地址- 因此您可以为 定义一个基地址,为http
另一个定义一个基地址,net.tcp
依此类推。
基地址是地址的基地址 - 每个端点都必须提供一个相对地址,该地址被添加到该基地址:
http
:http://hostname:port/svc1
基地址net.tcp
:net.tcp://hostname:port/tcp
端点 1:address="test1"
--> 完整的 URLhttp://hostname:port/svc1/test1
端点 2:address="test2"
--> 完整的 URLhttp://hostname:port/svc1/test2
端点 1 net.tcp
:address="tcp1"
--> 完整的 URLnet.tcp://hostname:port/tcp/tcp1
net.tcp
:address="tcp2"
--> 完整的 URLnet.tcp://hostname:port/tcp/tcp2
当然,即使有一个基地址,如果端点定义了它自己的完整地址,那么将使用该地址:
address="http://hostname:port2/OtherService/EP1"
--> 在这种情况下,由于指定了完整地址,因此定义的基地址http
不适用,并且此完全限定地址是实际的完整端点地址