У нас есть клиент-серверное приложение, которому в некоторых случаях требуется выполнение службы на стороне сервера без наличия клиентского EntityManager. Клиентское приложение передает действительный ключ sessionKey серверу, который выполняет вызов Authenticator.Instance.Login (sessionKey) и получает действительный контекст AuthenticationContext, который можно использовать для правильного подключения EntityManager на стороне сервера.
Все работает нормально пока сервер не будет перезапущен. Все ранее кэшированные ключи сеанса становятся недействительными, как и ожидалось.
Новые клиентские соединения работают нормально, и вызовы с новыми сгенерированными ключами сеанса также работают нормально. служба с недопустимым ключом sessionKey, как и ожидалось, генерируется исключение LoginException и запрашивает ReLogin. На данный момент все работает, как ожидалось.
Проблема в том, что с этого момента все новые вызовы, даже с допустимым ключом sessionKey, будут вызывать одно и то же последнее исключение, и все новые клиенты будут получать одно и то же исключение. .
Кажется, что EntityServer.SessionManager.Login (sessionKey) ставит в очередь ключи сеанса для подключения, и после сбоя одного вызова он всегда дает сбой.
Есть ли способ очистить EntityServer.SessionManager Ошибка в списке sessionKeys после неудачной попытки?
Эта проблема чрезвычайно опасна, так как мы должны обеспечить, чтобы все клиенты были выключены перед перезапуском сервера!