Application_Start()
の最初の行にブレークポイントがありますが、VisualStudioはブレークポイントになりません。
Visual Studioは、IIS作業プロセス:
マシン「SRD00510」のプロセス「[2092] w3wp.exe」への自動接続に成功しました。
ホームコントローラーのブレークポイントは機能します。
更新
私はもう試した:
iisreset
aspnet_regiis -i
)あなたの質問を読んで、私はあなたがVisual Studio Development Serverではなく、デバッグにIISを使用していると思います。
この場合、アプリケーションプールの開始時またはリサイクル時に一度だけ呼び出されるため、アプリケーション開始のデバッグには注意が必要です。 Visual Studioがプロセスにアタッチされているとき、Application_Startは既に実行されています。
秘訣は、接続しているプロセスを強制終了せずにアプリケーションプールをリサイクルすることです。
以下をせよ:
それは私にとってはうまくいきます(IIS 7.5、VS2015)。
この行をApplication_Start()に配置します。
Debugger.Break();
これにより、デバッガーを選択できるダイアログが表示されます。アプリケーションプールを再起動する必要がある場合があります。
私の解決策は、「Visual Studio Development Server」を使用して、アプリケーションクラス(Global.asax)の問題に対処するように切り替えることです。完了したら、IISに切り替えます。
Visual Studioの[デバッグ]ボタンをクリックしてアプリケーションをロードしていると思いますか?それが私が(VS 2012で)行っていることであり、同様の問題が発生しています。初めてそのボタンを押すと、アプリケーションが起動し、ブレークポイントに正しくヒットします。しかし、デバッグを停止した後も、アプリケーション自体は続行しているようです。したがって、将来のデバッグの試みは、既存のプロセスにアタッチするだけです。
「デバッグの停止」ボタンの横に「再開」ボタンがあるので、少なくともクリックすると状況が変わると思います。デバッグアプリはIIS managerに表示されないので、そこで停止することはできません。同様に、iisresetもそれをキャッチしません。
これまで私が理解したのは、コードの行を変更することだけです。これにより、Visual Studioにビルドをトリガーさせ、既存のprocを強制終了して最初からやり直します。そこを何度も歩きたいだけなら、ちょっと面倒です。
これは適切な「回答」とは思いませんが、誰かが実際の回答を得るまでは、これは役立つ回避策になる可能性があります。
[2092] w3wp.exeが作成したサービスである場合は、次のことを試してください:サービスの停止->サービスプロジェクトの再構築->再構築されたサービスの開始->デバッグを試みる
初めてアプリケーションを実行するとき、またはアプリケーションを起動すると言うときはいつでも、ASP.Net開発サーバーがあります-起動するポート[ポート番号]、
Application_Start()
は、アプリケーションの実行中に1回実行されます。
ブレークポイントに到達したい場合は、ASP.Net開発サーバーポートを停止して、アプリケーションを再実行する必要があります。
私はこれを行うことによって以前にこの問題を回避しました:
次に、ソリューションを開いて試してみてください。 (指を交差させてください:))
@David Perlmanが述べているように、IISEXPRESSを使用するオプションがない場合は、ロガーを使用します。 Log4NetまたはNLogはどちらも優れています。長期的には、たとえば実稼働環境でロガーを使用することをお勧めします。
namespace DataService
{
using NLog;
public class Global : System.Web.HttpApplication
{
private Logger log;
protected void Application_Start(object sender, EventArgs e)
{
LogManager.LoadConfiguration("nlog.config");
log = LogManager.GetCurrentClassLogger();
log.Error($"Read this line in the log specified in nlog.config");
}