0

ビジネス マネージャーを作成し、IIS がリサイクルするまでメモリに保持する IOC コンテナー (Windsor) を持つこの .NET Web アプリケーションの作業を開始しました。基本的に、これらのビジネス マネージャーには独自の状態があり、その内容が Application_Start で起動されるバックグラウンド スレッドから変更されるデータがあります。これは、私が Web アプリケーションが動作することを期待していた方法ではなく (ステートレスで、リクエストごとにスレッドごとであるはずです)、この実装が持続可能/スケーラブルかどうかはよくわかりません。誰かがこの方法で物事を試したことがありますか?もしそうなら、これに見られる結果/長所は何ですか?

4

1 に答える 1

1

アプリケーションでは、コア機能に対してのみ静的を使用します。静的クラスはすべてのリクエストで共有されるため、使いやすさはやや低くなるはずです。ASP.NET MVC 3 では、アプリケーションのさまざまな領域や、その他の一般的な OS ソース ライブラリに静的が利用されています。

それらが多くない限り、問題はありません...しかし、いつでもメモリ プロファイラを使用して、それらがどのくらい大きくなっているか、メモリを消費しすぎていないかを確認できます。

もう 1 つの方法は、キャッシュに配置するか、再構築して各リクエストに格納することです。それらをリクエストにグローバルに保存するには、HttpContext.Current.Itemsコレクションを使用します。

于 2011-05-24T12:16:38.093 に答える