HostServer выбрасывает исключения после обновления до K2 Blackpearl 4.6.11

Мы только что обновили K2 с версии 4.6.6 до 4.6.11 в наших средах. В среде имеется два сервера K2 с настройкой балансировки нагрузки. После обновления некоторые функции из API рабочего процесса K2 выдают исключения.

"Ошибка","EnvironmentServer","15100","Общий","SourceCode.Workflow.Runtime.Management [OpenConnection [string[] names]]","Произошла ошибка 15100, ОШИБКА: невозможно подключиться к loadbal-k2-abc.com через порт 5252. Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через определенный промежуток времени, или не удалось установить соединение, так как подключенный хост не ответил. "," anonymous","0.0.0.0" " Ошибка ","EnvironmentServer","15100","Generic","SourceCode.Workflow.Runtime.Management [SendArchiveX [string[] names]]"," Произошла ошибка 15100, ОШИБКА: невозможно подключиться к loadbal-k2-abc. com на порт 5252. Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через определенный промежуток времени, или не удалось установить соединение, так как подключенный хост не ответил. "," anonymous","0.0.0.0" " Ошибка ","EnvironmentServer","15101","Generic","SourceCode.Workflow.Runtime.Management [ReleaseWorklistItem [string[] names]]","15101 Произошла ошибка, ОШИБКА: невозможно подключиться к loadbal-k2-abc.com через порт 5252. Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не смог ответить. "," anonymous","0.0.0.0" " Ошибка "," Система ","2025","InternalMarshalError","SourceCode.Hosting.Server.Runtime.HostServerBroker.InternalMarshal"," Ошибка 2025, маршалинг SourceCode.Workflow.Runtime.Management.WorkflowManagementHostServer.ReleaseWorklistItem, Невозможно подключиться к loadbal-k2-abc.com через порт 5252. Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенному хосту не удалось реагировать. "," "," "," Ошибка "," Система ","2025","InternalMarshalError","SourceCode.Hosting.Server.Services.TCPClientSocket.InternalMarshal","2025 Ошибка Marshalling SourceCode.Workflow.Runtime.Management.WorkflowManagementHostServer.ReleaseWorklistItem, Невозможно подключиться к loadbal-k2-abc.com через порт 5252. Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не смог ответить. "Ошибка", "Связь","8060","ProcessPacketError","SourceCode.Hosting.Server.Services.TCPClientSocket.ProcessMessage","Ошибка 8060 ProcessPacket, невозможно подключиться к loadbal-k2-abc.com через порт 5252 Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не смог ответить. "

В журналах HostServer мы видим, что серверы K2 по какой-то причине пытаются связаться с балансировщиком нагрузки K2. Это похоже на изменение по сравнению с K2 4.6.6, где это работало идеально, и не было никаких вызовов для балансировщика нагрузки. Мы также проверили конфигурацию K2 и адрес балансировщика нагрузки нигде не упоминается.

Мы также обновили среду без балансировки нагрузки, и она работает без ошибок.

Почему хост-сервер K2 пытается подключиться к балансировщику нагрузки в K2 4.6.11 и откуда он получает адрес?

1 ответ

Решение

Это было решено с помощью поддержки K2. Были изменения в способе, которым K2 устанавливает соединения, и способ, которым мы делали строку соединения, необходимо было изменить.

Это было введено в 4.6.11 с изменениями SSO (TFS 524432 - SSO Prompt for Credential cache). В 4.6.10, когда вы аутентифицируете сеанс HostServer со следующей строкой соединения:

Интегрированный =True;IsPrimaryLogin=True; Аутентифицировать =True;EncryptedPassword=False;Host=k2.denallix.com; порт =5555;UserID=Denallix\Administrator;Password=K2pass;! WindowsDomain=denallix;SecurityLabelName=K2

строка подключения, связанная с сеансом: Integrated=True;IsPrimaryLogin=True;Authenticate=True;EncryptedPassword=False;Host=dlx; Порт =5555;UserID=DENALLIX\ Администратор; Пароль =K2pass!;AuthData=Denallix;SecurityLabelName=K2

Таким образом, ключ WindowsDomain не был сохранен до SSO, и вместо этого он был добавлен как AuthData (обратите внимание на конец образца строки подключения выше).

Когда вы открываете соединение от WorkflowManagmentServer к WorkflowClient, происходит проверка, чтобы увидеть, есть ли у соединения WindowsDomain, Имя пользователя и Пароль. Если бы у него было все 3, он попытался бы использовать эти детали для аутентификации пользователя, в 4.6.10 мы не сохранили WindowsDomain, он просто сделал бы обычную строку интегрированного соединения без имени пользователя и пароля.

По сути, при такой конфигурации вы пытаетесь пройти аутентификацию с использованием следующих учетных данных WindowsDomain + UserID, что приводит к использованию чего-то вроде "Домен \ Домен \ Пользователь" для аутентификации, и попытка аутентификации не удастся из-за этого.

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