私は特に、ユーザおよびグループのデータを照会し、その後のためにAPI内のエンドポイントを提供するために、自分の組織のActiveDirectoryので統合サービスを提供する必要がREST APIを書いていますオートコンプリートフィールドクエリ。C#のウェブAPI - ストアとメモリ内キャッシュ内のデータを永続化
私の組織のActiveDirectoryは非常に大きく、約130,000のユーザーオブジェクトとグループオブジェクトが結合されています。
これらのオブジェクトのすべてを照会し、私たちの現在のバッキングストア(MongoDBの)に格納するには、約40分かかります。
私たちは、モンゴの使用をスキップし、Web APIのメモリで照会ADのすべてのオブジェクトを格納するオプションがあるかどうかを確認することを決めました。
私は、IISアプリケーションプールがリセットされるたびにその中に格納されているデータが失われ、その後APIが約40分間データを提供できないため、シングルトンは機能しないことに気付きました。起こることはできません。
私はまた、名前空間System.Runtime.Caching
を指しthis質問を見ました。しかし、名前空間によって提供されるMemoryCache
も、IISアプリケーションプールのリセット時にすべてのデータを失います。
私の質問は、Web APIメモリ内にADからのデータを格納するためのソリューションが他にありますか?現時点では、情報を保持するために永続ストア(リレーショナルまたはドキュメントDB)を使用しないようにしたいと考えていますが、実行可能なソリューションが表示されない場合は、Mongoに固執する可能性があります。
注: 'ConcurrentDictionary' –