6

ASP.NET MVC4 Web アプリがあり、アプリの初回起動時にいくつかのコードを実行したいと考えています。このコードは基本的に、データベースから大量のデータをロードしてキャッシュに保存するため、今後のリクエストでキャッシュからデータを検索できます。

このコードを配置する正しい場所はどこですか? コード行を Global.asax に追加するだけでよいですか、それともアプリの起動後にコードを呼び出すためのベスト プラクティスはありますか?

4

3 に答える 3

4
Global.asax.cs:Application_Start()

ルートの登録などを行うのと同じ場所。

これはまさにキャッシュを初期化する場所でもあります。また、各 Application_BeginRequest() のキャッシュ有効期限をチェックして、更新が必要かどうかを確認します。

于 2013-04-23T15:18:20.320 に答える
2

Application_StartGlobal.asaxにコードを配置できます。

または、静的メンバーで型を使用することもできますLazy。これは、最初に呼び出されたときにのみ初期化されます (アプリケーションが実行されている限りメモリに残ります)。これには、アプリケーションの起動が不必要に遅くならないという利点があります。

たとえば、この例はコンパイル済みの Regex 用ですが、データの読み込みでも実行できます。

public static Lazy<Regex> LibraryTagsRegex = 
    new Lazy<Regex>(() => new Regex(@"^library/tagged/(?<Tags>.+)", RegexOptions.Compiled));
于 2013-04-23T15:21:30.220 に答える