The Service Bus Bindings

The service bus offers multiple bindings for relaying messages, yet the three main bindings this chapter focuses on are the NetTcpRelayBinding, NetOnewayRelayBinding, and NetEventRelayBinding. A fourth binding, the WS2007HttpRelayBinding, is available as well, yet the likelihood of using it is low, as it is reserved for the case of interoperable messages to the service bus and it is inferior in performance to the NetTcpRelayBinding (which can also use HTTP ports).

The TCP Relay Binding

The TCP relay binding is the binding of choice in the majority of cases involving relayed Internet connectivity. It yields the best performance and throughput while minimizing the overhead for both the service and the relay service. It supports request-reply operations, one-way operations, and even duplex callbacks, all through the relay service. For scheme, the TCP relay always uses sb:

   address  = "sb://"
   binding  = "netTcpRelayBinding"
   contract = "..."

The TCP relay binding offers unlimited message size (up to the configured message size, as with the regular TCP binding). The TCP relay binding always maintains a transport session, so with a session-full service, calls made on the same proxy channel always end up reaching the same service instance. However, because this binding uses the TCP binary encoding, it is not interoperable—it assumes the other side is also using the TCP relay binding.

Adding default endpoints

You cannot rely ...

Get Programming WCF Services, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.