Why can't I have two BasicHttpRelay receive locations with different namespaces but the same relay name?

175 views Asked by At

I am trying to create a BizTalk solution that uses two Relay namespaces in two different regions for high availability. I have a receive port with two receive locations with identical configuration except for the URI (and the SAS key) where they differ by the namespace only. I would like to use the same relay name for each, because this name has business domain significance in my solution.

The URIs are of the form:

  • https://[my-solution]-relay-uksouth.servicebus.windows.net/[my entity]
  • https://[my-solution]-relay-ukwest.servicebus.windows.net/[my entity]

When I start the second location, it stops and logs an error message:

The Messaging Engine failed to add a receive location "[receive location name]" with URL "https://[my-solution]-relay-ukwest.servicebus.windows.net/[my entity]" to the adapter "WCF-BasicHttpRelay". Reason: "System.InvalidOperationException: The ChannelDispatcher at 'sb://[my-solution]-relay-ukwest.servicebus.windows.net/[my entity]' with contract(s) '"ITwoWayAsyncVoid"' is unable to open its IChannelListener. ---> System.InvalidOperationException: A registration already exists for Uri 'sb://[my-solution]-relay-ukwest.servicebus.windows.net/[my entity]'.

What do I have to do to make BizTalk accept this? I can't see any reason why this would not just work. I have considered the limitation of WCF services that it is not allowed to host more than one service with the same base address and protocol - but the base addresses are different, so I don't think it should be claiming that this is the problem.

I am using BizTalk Server 2016.

1

There are 1 answers

1
DTRT On

The error is correct. All URIs refer to ukwest.

The Messaging Engine failed to add a receive location "[receive location name]" with URL "https://[my-solution]-relay-ukwest.servicebus.windows.net/[my entity]" to the adapter "WCF-BasicHttpRelay". Reason: "System.InvalidOperationException: The ChannelDispatcher at 'sb://[my-solution]-relay-ukwest.servicebus.windows.net/[my entity]' with contract(s) '"ITwoWayAsyncVoid"' is unable to open its IChannelListener. ---> System.InvalidOperationException: A registration already exists for Uri 'sb://[my-solution]-relay-ukwest.servicebus.windows.net/[my entity]'.