次のコードを使用して、キャッシュ (メモリ内および Redis) に接続しています。
settings
.WithSystemRuntimeCacheHandle()
.WithExpiration(CacheManager.Core.ExpirationMode.Absolute, defaultExpiryTime)
.And
.WithRedisConfiguration(CacheManagerRedisConfigurationKey, connectionString)
.WithMaxRetries(3)
.WithRetryTimeout(100)
.WithJsonSerializer()
.WithRedisBackplane(CacheManagerRedisConfigurationKey)
.WithRedisCacheHandle(CacheManagerRedisConfigurationKey, true)
.WithExpiration(CacheManager.Core.ExpirationMode.Absolute, defaultExpiryTime);
正常に動作しますが、マシンが (ホストしている Azure によって自動的に) 再起動され、再起動後に Redis への接続が次の例外で失敗することがあります。
Connection to '{connection string}' failed.
at CacheManager.Core.BaseCacheManager`1..ctor(String name, ICacheManagerConfiguration configuration)
at CacheManager.Core.BaseCacheManager`1..ctor(ICacheManagerConfiguration configuration)
at CacheManager.Core.CacheFactory.Build[TCacheValue](String cacheName, Action`1 settings)
at CacheManager.Core.CacheFactory.Build(Action`1 settings)
Redis FAQ ( https://docs.microsoft.com/en-us/azure/redis-cache/cache-faq ) の部分によると、「クライアントがキャッシュから切断されたのはなぜですか?」再デプロイ後に発生する可能性があります。
質問は
- 再デプロイ後に接続を復元するメカニズムはありますか
- 接続を初期化する方法に何か問題がありますか
接続文字列は問題ないと確信しています