Почему я не могу иметь два местоположения приема BasicHttpRelay с разными пространствами имен, но с одинаковым именем ретранслятора?

Я пытаюсь создать решение BizTalk, которое использует два пространства имен Relay в двух разных регионах для обеспечения высокой доступности. У меня есть порт приема с двумя местами приема с одинаковой конфигурацией, за исключением URI (и ключа SAS), где они отличаются только пространством имен. Я хотел бы использовать одно и то же имя ретранслятора для каждого, потому что это имя имеет значение бизнес-домена в моем решении.

URI имеют форму:

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

Когда я запускаю второе местоположение, оно останавливается и записывает сообщение об ошибке:

Механизму обмена сообщениями не удалось добавить местоположение получения "[имя местоположения получения]" с URL-адресом " https://%5Bmy-solution%5D-relay-ukwest.servicebus.windows.net/%5Bmy entity]" к адаптеру "WCF-BasicHttpRelay". Причина: "System.InvalidOperationException: ChannelDispatcher в 'sb://[my-solution]-relay-ukwest.servicebus.windows.net/[my entity]' с контрактом (-ами)" "ITwoWayAsyncVoid" "не может открыть его IChannelListener. ---> System.InvalidOperationException: регистрация уже существует для Uri 'sb://[my-solution]-relay-ukwest.servicebus.windows.net/[my entity]'.

Что мне нужно сделать, чтобы BizTalk принял это? Я не вижу причин, по которым это не сработает. Я рассмотрел ограничение служб WCF, заключающееся в том, что ему не разрешено размещать более одной службы с одним и тем же базовым адресом и протоколом - но базовые адреса разные, поэтому я не думаю, что следует утверждать, что это проблема.

Я использую BizTalk Server 2016.

1 ответ

Ошибка правильная. Все URI относятся к ukwest.

Механизму обмена сообщениями не удалось добавить местоположение получения "[имя местоположения получения]" с URL " https://%5Bmy-solution%5D-relay-ukwest.servicebus.windows.net / [my entity]" к адаптеру "WCF-BasicHttpRelay". Причина: "System.InvalidOperationException: ChannelDispatcher в 'sb: // [my-solution] -relay-ukwest.servicebus.windows.net / [my entity]' с контрактом (-ами)" "ITwoWayAsyncVoid" "не может открыть его IChannelListener. ---> System.InvalidOperationException: регистрация уже существует для Uri 'sb: // [my-solution] -relay-ukwest.servicebus.windows.net / [my entity]'.

Другие вопросы по тегам