2013-08-30 96 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實際的,完整的端點地址