1. ホーム
  2. asp.net

Global.asaxでApplication_StartとInitをいつ使い分けるか?

2023-07-23 21:18:27

質問

どのような状況でアプリケーションの初期化コードを Application_Start() 対して Init() で、私の Global.asax というファイルを作成することはできますか?

の区別は、私にはあまり明白ではないように思えますが、他には Application_start が最初に呼ばれ、次に Init() .

  • なぜどちらかを使う必要があるのでしょうか?
  • 本当に違いがあるのでしょうか?
  • 2 つのイベントの間に、アプリケーションの状態にはどのような変化がありますか? はどのように変化するのでしょうか?

今のところ、私が見つけることのできる唯一の本当のポインターは IHttpModule を持つだけです。 Init() メソッドしかないので、もし私がやっていることがある時点で IHttpModule を実装したほうがいいのであれば、私は Init() のメソッドで Global.asax メソッドと同じように、一貫性を保つために

どのように解決するのですか?

からの MSDN ドキュメント :

<ブロッククオート

Application_Start と Application_End メソッドは、HttpApplication イベントを表さない特別なメソッドです。ASP.NET は、各HttpApplicationインスタンスではなく、アプリケーションドメインの寿命に対して一度だけそれらを呼び出します。 .

イニシエーションです。

呼び出される のインスタンスごとに一度だけ呼び出されます。 HttpApplication クラスのすべての モジュールが作成された後に

UPDATE: もし、あるコードがアプリのライフサイクルの中で一度だけ呼ばれることを確認する必要がある場合、Application_Startがより良い解決策となります。例:log4netを設定する?