Клиентский сервер signalR перестает работать после изменения записи DNS-ip для сервера - PullRequest
0 голосов
/ 06 февраля 2019

Я использую клиентские и служебные приложения signalR - оба размещаются в виде консольных приложений.Я заинтересован в том, чтобы следующий сценарий работал:

  1. Одна служба запускается на "someaddress.org"
  2. Вторая служба запускается на "172.123.2.5"
  3. Клиент запускается и создает прокси-сервер-концентратор по адресу «someaddress.org», который DNS-сервером указывает на «172.123.2.3»
  4. Клиент начинает получать обновления с сервера
  5. Вв какой-то момент сервер аварийно завершает работу и больше не доступен
  6. Служба проверки работоспособности обнаруживает, что служба не работает, и обновляет 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

...