Прикрепленные сеансы SignalR с F5 и Citrix

у нас есть веб-приложение (угловое), которое должно взаимодействовать с приложением winform. мы делаем это через SignalR. браузер и winform развернуты на сервере citrix. Существует веб-ферма серверов IIS, на которых у нас есть службы webapi, а также концентраторы signalR.

вся сетевая активность идет через loadbalancer F5.

проблема, с которой мы сталкиваемся, заключается в том, как убедиться, что веб-приложение работает в Chrome, а приложение Windows Forms подключается к одному и тому же серверу-концентратору SignalR.

мы не можем использовать фиксированные сеансы на основе исходного IP-адреса, поскольку все пользователи используют инфраструктуру Citrix, поэтому у всех один и тот же исходный IP-адрес. с использованием файла cookie - я не уверен, что файл cookie используется браузером и приложением winform. и в любом случае cookie в сценарии веб-сокета не работает (правильно?)

единственное решение с использованием объединительной платы? (на данный момент ядро ​​dotnet не используется)


person May    schedule 05.12.2017    source источник


Ответы (1)


Переопределить или изменить источник Signalr

Частная задача ProcessNegotiationRequest -->

   string connectionId = !string.IsNullOrEmpty(context.Request.QueryString["ConnId"]) ? context.Request.QueryString["ConnId"]: connectionId = Guid.NewGuid().ToString("d");

И отправьте conId в строке запроса

person Ufuk Aydın    schedule 08.12.2017
comment
я обнаружил, что могу использовать параметр QueryString при подключении к концентратору сигналов, и эта строка запроса отправляется во всех запросах на сервер. Я пытаюсь создать iRule в F5, используя значение в строке запроса. - person May; 09.12.2017