ユーザーのセッションをホストしている 3 ノード クラスターの 1 つのノードを停止すると、Web アプリで次の例外が発生します。
セッション キャッシュには、エビクションなしのセカンダリもあります。
エラーメッセージとスタックは次のとおりです。
Exception information:
Exception type: DataCacheException
Exception message: ErrorCode<ERRCA0022>:Cache::GetAndLock: There is a temporary failure, please retry after some time.
Stack trace: at Microsoft.Data.Caching.DataCache.ExecuteAPI(RequestBody reqMsg, String apiName)
at Microsoft.Data.Caching.DataCache.InternalGetAndLock(String key, TimeSpan timeout, DataCacheLockHandle& lockHandle, String region)
at Microsoft.Data.Caching.DataCache.GetAndLock(String key, TimeSpan timeout, DataCacheLockHandle& lockHandle)
at Microsoft.Data.Caching.DataCacheSessionStoreProvider.GetItemExclusive(HttpContext context, String id, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actions)
at System.Web.SessionState.SessionStateModule.GetSessionStateItem()
at System.Web.SessionState.SessionStateModule.PollLockedSessionCallback(Object state)
しばらくしてからリクエストを再試行すると、メッセージは消えます。なぜ私はこのメッセージを最初に受け取ったのでしょうか。サーバーは、ホストがダウンしていることを独自に判断して、他のクライアントのいずれかに切り替えるべきではありません。ルーティングの問題が発生した場合に備えて、web.config ファイルでセッション クライアントをシンプルに定義しましたが、それでも問題が発生します。