2011-06-25 23 views
2

同じコードとローカライズされたリソースファイル* .resxと* .ru.resxを持つ2つのサイトmyDomain.AUとmyDomain.RUがあるとします。私たちは、英語ユーザーのほとんどがAUサイトを使用し、ロシアユーザーのほとんどがRUサイトを使用すると予想しました。ただし、AUドメインのユーザーがロシア語版を要求すると、.RuリソースがAUサーバーに読み込まれ、ロシア語が表示されます。ローカライズされたASP.NETリソースの有効期限切れ

しかし、私はプールのリサイクルまで.RUリソースを保持したくないのですが、誰もリソースを使用しなければそれらをアンロードする必要があります。だから私は、各言語の有効期限の設定されたキャッシュされたローカライズされたリソースのタイミングの満了をしたい。 関連の質問は、すべてのキャッシュをクリアします(http://www.west-wind.com/presentations/wwdbresourceprovider/) DbResourceConfiguration.ClearResourceCacheを(持っている)、「データドリブンASP.NETローカライズリソース・プロバイダとエディタの作成」でhttp://techsoda.wordpress.com/2008/01/04/aspnet-reset-that-resource/http://forums.asp.net/t/1201065.aspx/1

リックシュトラールで上昇が、唯一の有効期限が切れていませんでした。

どのような提案、参考資料は、実装するための最良の方法は歓迎です。

以下のリックのコメントは、私が「未熟な最適化」をしていることを指摘しました。 多すぎるリソースの読み込みが生産上の問題になる場合は、解決策を知っておくとよいでしょう。

答えて

1

静的辞書をリソースキャッシュとして使用する代わりに(Rick Strahlのサンプルのように)、個々のカルチャデータをASP.NETキャッシュに格納しないでください。

+0

偉大で簡単なアイデア。私はそれを試し、副作用をチェックします。 –

+0

キャッシュはタイムアウト以外にも数多くの方法でタイムアウトする可能性があるので、それは素晴らしい考えではないと思います。たとえば、メモリの負荷によって、リソース辞書のような大きなものが読み込まれる可能性があります。 アプリでリソースを使用している場合は、これらのリソースがいくらかのメモリを使い果たしてしまうことをお勧めします。アプリケーションが膨大な量のリソースを使用していない限り、ASP.NETメモリ使用量の大きなスキームでは、リソースをロードしたままにしても、メモリフットプリントにはほとんど影響しません。 –

+0

私はこれが最適なメモリ管理戦略のように見えることはめったにないことに同意しますが、めったに使用されていない多くの文化の場合には関連します。必要に応じてCacheItemPriority.NotRemovableを使用して、キャッシュの自動クリーンアップを無効にすることもできます。 –

関連する問題