28

の最初の行でブレークポイントを取得しましたが、VisualStudioはブレークポイントを取得しApplication_Start()ません。

Visual Studioは、IISの作業プロセスに接続しています。

マシン「SRD00510」のプロセス「[2092]w3wp.exe」への自動接続に成功しました。

ホームコントローラーのブレークポイントは機能します。

アップデート

私はもう試した:

  • iisreset
  • VisualStudioを再起動しました
  • 再起動しました。
  • aspnetを再インストールしようとしました(aspnet_regiis -i
4

9 に答える 9

58

あなたの質問を読んで、Visual Studio Development Server ではなく IIS をデバッグに使用していると思います。

この場合、アプリケーション プールの開始時またはリサイクル時に 1 回しか呼び出されないため、アプリケーションの開始のデバッグは注意が必要です。Visual Studio がプロセスにアタッチされると、Application_Start は既に実行されています。

トリックは、接続しているプロセスを強制終了せずにアプリケーション プールをリサイクルすることです。

以下をせよ:

  1. Visual Studio (管理者として実行する必要があります) で、global.asax.cs にブレークポイントを設定し、通常どおりデバッグを開始します (F5)。Web ブラウザーでページが開きますが、ブレークポイントにはヒットしません。
  2. ここでの秘訣: テキスト エディターを使用して、IIS によって提供されている場所から web.config を開き、変更 (たとえば、どこかに空白行を入力) して保存します。IIS でアプリケーション プールをリサイクルするのとは対照的に、これによりアプリケーション プールをリサイクルできます (したがって、次に Web サイトが呼び出されたときに、global.asax.cs の Application_Start を介して実行されます)。関連付けられているプロセスを強制終了する必要はありません。
  3. Web ブラウザーで、ページをリロードします。ブレークポイントがヒットするはずです。

それは私にとってはうまくいきます(IIS 7.5、VS2015)。

于 2014-10-01T08:50:50.597 に答える
14

この行を Application_Start() に配置します。

Debugger.Break();

これにより、デバッガを選択できるダイアログが表示されます。アプリケーション プールの再起動が必要になる場合があります。

于 2012-05-30T13:20:37.043 に答える
6

Application_Start()アプリケーションの起動時に一度だけ実行されます。アプリケーションを再起動するいくつかのことは次のとおりです。

  • web.config の変更
  • ワーカー プロセスのリサイクル - これは、IIS マネージャーで実行するかiisreset、コマンド ラインで実行して実行できます。
于 2012-05-30T13:13:09.993 に答える
2

私の解決策は、'Visual Studio Development Server' を使用してアプリケーション クラス (Global.asax) の問題に対処することです。完了したら、IIS に戻ります。

于 2013-09-09T06:19:14.253 に答える
0

Visual Studio の [デバッグ] ボタンをクリックしてアプリケーションをロードしていると思いますか? それが私が(VS 2012で)行っていることであり、同様の問題が見られます。そのボタンを初めて押すと、アプリケーションが起動し、ブレークポイントに正しくヒットします。しかし、アプリケーション自体のデバッグを停止した後も続行しているようです。したがって、将来のデバッグの試みは、既存のプロセスにアタッチするだけです。
「デバッグの停止」ボタンの横に「再起動」ボタンがあるので、それをクリックすると少なくとも状況が変わると思います。デバッグ アプリが IIS マネージャーに表示されないため、そこで停止できません。同様に、iisreset もそれをキャッチしません。

私がこれまでに理解した唯一のことは、コード行を変更することです。これにより、Visual Studio にビルドを強制的にトリガーさせ、既存の proc を強制終了して最初からやり直します。そこを何度も通り抜けたいだけだとちょっと面倒です。

私はこれを適切な「答え」とは考えていませんが、誰かが本当の答えを出すまでは、役に立つ回避策になるかもしれません.

于 2012-09-10T14:15:11.990 に答える
0

アプリケーションを初めて実行するとき、またはアプリケーションを開始するときはいつでも、ASP.Net 開発サーバー - ポート [ポート番号] が開始されます。

Application_Start()アプリケーションの過程で 1 回実行されます。

ブレーク ポイントに到達するには、ASP.Net 開発サーバー ポートを停止して、アプリケーションを再度実行する必要があります。

于 2014-04-08T05:27:53.680 に答える
0

これを行うことで、以前にこの問題を回避しました:

  1. ソリューションでクリーンを実行します (ソリューション ノードを右クリックし、[クリーン] をクリックします)。
  2. ソリューションを閉じる
  3. ファイル -> Visual Studio で終了
  4. Visual Studio の複数のインスタンスを実行している場合は、すべてのインスタンスを終了します。タスク マネージャーのプロセスに「devenv.exe」が表示されていないことを確認します。
  5. 通常、ソリューション (.sln) ファイルと同じディレクトリにあるユーザー オプション ファイル (.suo) を削除します。
  6. IIS ワーカー プロセスをリサイクルするか、開発サーバーを使用している場合は、そのプロセスを強制終了します。

ソリューションを開いて試してみてください。(指を交差させてください:))

于 2013-09-09T06:26:46.110 に答える