Authenticator.Instance.Login с sessionKey продолжает сбой после первой ошибки для всех клиентов - PullRequest
1 голос
/ 11 июля 2020

У нас есть клиент-серверное приложение, которому в некоторых случаях требуется выполнение службы на стороне сервера без наличия клиентского EntityManager. Клиентское приложение передает действительный ключ sessionKey серверу, который выполняет вызов Authenticator.Instance.Login (sessionKey) и получает действительный контекст AuthenticationContext, который можно использовать для правильного подключения EntityManager на стороне сервера.

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

Новые клиентские соединения работают нормально, и вызовы с новыми сгенерированными ключами сеанса также работают нормально. служба с недопустимым ключом sessionKey, как и ожидалось, генерируется исключение LoginException и запрашивает ReLogin. На данный момент все работает, как ожидалось.

Проблема в том, что с этого момента все новые вызовы, даже с допустимым ключом sessionKey, будут вызывать одно и то же последнее исключение, и все новые клиенты будут получать одно и то же исключение. .

Кажется, что EntityServer.SessionManager.Login (sessionKey) ставит в очередь ключи сеанса для подключения, и после сбоя одного вызова он всегда дает сбой.

Есть ли способ очистить EntityServer.SessionManager Ошибка в списке sessionKeys после неудачной попытки?

Эта проблема чрезвычайно опасна, так как мы должны обеспечить, чтобы все клиенты были выключены перед перезапуском сервера!

...