Я использую клиентские и служебные приложения signalR - оба размещаются в виде консольных приложений.Я заинтересован в том, чтобы следующий сценарий работал:
- Одна служба запускается на "someaddress.org"
- Вторая служба запускается на "172.123.2.5"
- Клиент запускается и создает прокси-сервер-концентратор по адресу «someaddress.org», который DNS-сервером указывает на «172.123.2.3»
- Клиент начинает получать обновления с сервера
- Вв какой-то момент сервер аварийно завершает работу и больше не доступен
- Служба проверки работоспособности обнаруживает, что служба не работает, и обновляет DNS-сервер, чтобы «someaddress.org» указывал на «172.123.2.5», где второй(идентичный) сервис уже запущен
На данный момент клиент не может установить соединение с новым сервером, и я пытаюсь понять, почему и заставить его работать.клиент распознает, что сервер вышел из строя - возникает событие hubConnection.Error, и все.
Если первый сервис работает и снова работает, все работает нормально, но когда запись DNS меняется на другуюсервер больше не работает.
я также сделал тест локально - создал запись в файле хоста:
127.0.0.1 testaddress
и клиент, и сервернастроены на использование "testaddress" в качестве имени хоста.когда он работает, все работает хорошо, затем я изменяю запись на другой IP-адрес:
127.0.0.3 testaddress
, как и ожидалось - все работает хорошо, но соединение все еще не повреждено.Теперь, если я остановлю сервер, подождите несколько секунд, затем измените запись на:
127.0.0.1 testaddress
и перезапустите сервер - соединение никогда не восстанавливается - клиент генерирует ошибкии наконец закрывается.Вот события, возникающие в этом сценарии: hubConnection.Error - происходит примерно в 10 раз hubConnection.Closed
, если я делаю тот же сценарий, не изменяя запись имени хоста (и не останавливая сервер, ожидая несколько секунд и перезапускаясь)он), возвращается, снова начинает работать хорошо, даже если я подожду дольше - в этом случае это события, вызванные клиентом: hubConnection.Error - происходит несколько раз, пока я снова не запускаю сервер, а затем hubConnection.Reconnecting hubConnection.Reconnected