Global.asaxファイルをデバッグできません!
Application_Start()
メソッドにいくつかのコードがありますが、メソッドにブレークポイントを設定すると、無視されます!
これは正常ですか?
たぶんあなたは試してみてください:
Application_Start()
を破る簡単な方法は、_System.Diagnostics.Debugger
_クラスを使用することです。デバッガーを中断したい場所にSystem.Diagnostics.Debugger.Break()
を挿入することにより、アプリケーションを強制的に中断できます。
_void Application_Start(object sender, EventArgs e)
{
System.Diagnostics.Debugger.Break();
// ...
}
_
Application_Start()
はAppDomainごとに1回呼び出されます。ブレークポイントに到達していない場合は、AppDomainが既に作成されていることを意味するため、以下を実行します。
Webアプリケーションがデバッグモード(<compilation debug="true">
in web.config)。
VSによって開始された開発者のIISを使用している場合は、単に再起動するか、アプリケーションを再構築します。
通常の場合IISには2つのオプションがあります。
Debug - Attach to process
メニューで、コンピューター名を入力し、デバッグするプロセスを選択します。通常、管理モードタイプで動作するw3wp.exeです。はい、それは正常です。
Application_Start()
はIISによって処理されます。
しかし、他のすべてのメソッド、たとえば_Session_Start
_、およびApplication_Start()
を除く他のすべてのメソッドは正常にデバッグできます。
受け入れられたSystem.Diagnostics.Debugger.Break();
の別の代替は
void Application_Start(object sender, EventArgs e)
{
System.Diagnostics.Debugger.Launch();
//...
}
サービスが異なる権限で開始された場合でも、コードを壊すことはなく、デバッガーを開始する必要があります。
global.asax
そして新しいものを追加します。私のソリューションでは、global.asax
およびglobal.asax.cs
。
すべてのメソッド(Session_Start
、Application_Start
、...)はボットファイルに含まれていますが、global.asax
が検討されました。したがって、CS内のブレークポイントとコードは何もしません。
ファイルを再作成した後のみ、global.asax.cs
適切なメソッドがあり、実行されました。
F5を押してApplication_Start()関数がすぐに呼び出されることを期待しないでください。 Application_Start()は、アプリケーションへの最初の要求が行われたときにのみ呼び出されます。奇妙だが真実。
すべての回答が機能しない場合は、次を試してください。
<compilation debug="true" ... />
web.config
。 ;)
私にとって、デバッグブレークポイントは、デバッガーが接続されるまでにIISで既に実行されていました。そのため、小さなスペースでglobal.asaxを変更し、ファイルを保存しました。今ヒットしています。
ここでの解決策: https://wakeupandcode.com/hitting-breakpoints-in-global-asax/