by WebSurfer
2011年8月26日 22:08
Global.asax の Application_Start メソッド内にブレークポイントを設定して、Visual Studio の F5(デバッグ開始)で実行しても、ブレークポイントでは停止しません。
その理由は、Application_Start のタイミングでは、まだデバッガが IIS のプロセスにアタッチされていないからだそうです。
ちなみに、開発サーバーの場合は Application_Start より前のタイミングでデバッガをアタッチするようで、 Application_Start 内に設定したブレークポイントで止まります。
IIS 上で Web アプリを動かしても、Application_Start をデバッグする方法はあるでしょうか?
調べてみたところ、任意のタイミングでデバッガをアタッチする方法があるようです。
それは、System.Diagnostics.Debugger.Break メソッド をコードに仕込んでおくことです。 Crtl + F5(デバッグなしで開始)で実行すると、デバッガがアタッチされていない場合はそこでダイアログ(上の画像参照)が表示され、デバッガを起動(下の画像参照)できます。
知ってましたか? 実は、自分は、Application_Start のタイミングではデバッガがアタッチされてないということも知らなかったです。(笑)