MvcApplicationはMVC3Webアプリケーションのシングルトンですか?なぜ3つのインスタンスを見つけたのですか?
私の手順:(VS2010 SP1 + ASP.NET MVC 3ツールの更新)
- デフォルトのインターネットMVC3アプリケーションを作成します(アカウントサンプルを使用)
- global.asaxにMvcApplication()コンストラクターを追加し、ブレークポイントを設定します
- F5キーを押してデバッグします
コンストラクターが3回呼び出されたことがわかりました!
よろしくお願いします、
Zach @ Shine
===編集===
修正:
1つのWebアプリで3つではなく、2つのインスタンスが見つかりました。注意深くチェックしたところ、ソリューションに2つのWebアプリが含まれていることがわかりました。そのうちの1つを削除すると、左側のアプリのインスタンスが2つ見つかります。
これがログです(番号はMvcApplicationインスタンスのハッシュコードです)
MvcApplication(): 41516761
Application_Start(): 41516761
MvcApplication(): 56552081
Application_AuthenticateRequest(): 56552081
Application_AuthenticateRequest(): 56552081
Application_AuthenticateRequest(): 56552081
MvcApplication_Disposed(): 56552081
Application_End(): 41516761
示されているように、一方のインスタンスは開始イベントと終了イベントの処理に使用され、もう一方のインスタンスは要求の処理に使用されます。