Проблемы с отключением от реле служебной шины Azure

Мы запускаем несколько долго работающих тестовых приложений с ретранслятором служебной шины Azure через http, размещенными в службе Windows, и в большинстве случаев они работают нормально в течение 2-3 дней. Однако время от времени может происходить сбой во внутренней сети (например, перезагрузка брандмауэра), который прерывает подключение к Интернету.

На этом этапе ретранслятор отключен в Azure, и наше веб-приложение больше не может взаимодействовать с локальной службой.

Я бы подумал, что клиент ретрансляции Azure был отказоустойчивым - в том смысле, что, если он поймет, что потерял соединение с Azure, он восстановит соединение и, если он не сможет продолжать попытки, пока не сможет ... но похоже, что это не тот случай. Это кажется довольно фундаментальным ...?

Только однажды я встречал исключение System.ServiceModel.CommunicationException, когда служба не могла взаимодействовать в Интернете, и это было тогда, когда клиент запускался и пытался установить соединение.

Есть ли какие-либо советы или отзывы по обработке временных отключений через службу ретрансляции (поскольку это облако -> локальное направление, клиент не может AFAIK пинговать сервер).


person GrahamB    schedule 11.07.2014    source источник
comment
Вы решили эту проблему? Возникла та же проблема, но не могу найти решения.   -  person NIME    schedule 15.04.2015


Ответы (2)


Если у вас все еще возникают проблемы, вы можете обратиться в службу поддержки Azure, чтобы понять, почему она отключается. Клиент Relay должен повторно подключиться, если что-то случится с существующим подключением.

Вы можете добавить ConnectionStatusBehavior в свой ChannelFactory, чтобы он выводился при изменении статуса соединения. Он будет содержать ошибку, которая привела к изменению статуса.

var connectionStatusBehavior = new ConnectionStatusBehavior();
connectionStatusBehavior.Online += ConnectionStatusOnlineMethod;
connectionStatusBehavior.Offline += ConnectionStatusOfflineMethod;
channelFactory.Endpoint.Behaviors.Add(connectionStatusBehavior);
person TheDude    schedule 03.09.2014
comment
Да, по-прежнему возникают проблемы, если локальная сеть разрывает соединение с Интернетом (перезагрузка брандмауэра, отключение интернет-провайдера и т. Д.). Реле не подключается автоматически. - person GrahamB; 04.09.2014

Эта проблема решена корпорацией Майкрософт в версии 2.6.5 библиотеки DLL Microsoft Azure Service Bus. После 1 месяца тестирования вроде заработало.

person NIME    schedule 26.06.2015