2011-10-05 24 views
9

私はASP.NETアプリケーションのコードをGlobal.asax.csコードファイルのC#で使用しています。 Application_Startでは、Session_StartApplication_Begin Request私はいくつかのブレークポイントを設定しています。しかし、これらのどれも今までに打撃を受けていません。私はローカルマシンでVS8を使って作業しています。global.asaxブレークポイントがヒットしない

  • をバックアップVSと開口部を閉じるASPのDevサーバー
  • 削除されたすべてのASP.NET一時ファイル
  • 作成した新しいGlobal.asax
  • を停止:ここ

    は、私が試したものですプロジェクトのクリーン/リビルド

これらの後にしようとすると、ブレークポイントはヒットしません。

これは何故でしょうか?

+0

での起動方法のうちのいずれかから配置して、ブレークポイントを打つことができるはずです。これらのイベントのそれぞれで、Visual Studioからソリューションを実行している間に出力ウィンドウを確認しますか?あなたは何かを見ますか? –

+2

あなたの場合に役立ちますか?[回答](http://stackoverflow.com/questions/1960651/it-is-possible-to-debug-global-asax/4809464#4809464) –

+0

これらのメソッドの実際の宣言を貼り付けることができますか?たぶんあなたはそれらを間違って宣言したでしょう。 –

答えて

24

この同じ問題が発生しました。私はVS開発サーバーの代わりにローカルIISを使用していると仮定しています。この場合、デバッガが接続されるまでにこのコードはIISで既に実行されているため、このコードをGlobal.asax.csファイルでデバッグ/ステップ実行することはできません。ただし、Devサーバーを使用する場合は、デバッガがすでに接続されているため、このコードを使用することができます。

したがって、プロジェクトプロパティのサーバーをVisual Studio開発サーバーを使用するように変更します。

これは、Visual StudioでProject Properties>Web tab>Use Visual Studio Development Serverのプロジェクトを右クリックすると表示されます。

System.Diagnostics.Debugger.Break();そのApplication_Start()方法に:私を助け何

+0

これは私のために素晴らしい仕事。受け入れられた答え – Kevin

+4

VS 2013 Visual Studio開発サーバーでは、@Ofiris答えdoesntヘルプも –

4

追加することでした。私が働いていたプロジェクトで

+0

AppPoolエラーが発生しました。 – QMaster

2

は、「外部プログラムを起動する」オプションは、タブで選択されました:

のVisual Studio>プロジェクトのプロパティ>はウェブ

これはにブレークポイントを引き起こしていましたヒットしないでください。

「開始アクション」を「現在のページ」に変更すると、この問題が解決されました。

0

別の回答では、デバッガが接続する前にGlobal.asaxコードが実行されます。この問題を回避するには、デバッグを開始してから、IISに入り、アプリケーションを停止/開始して、デバッガに再起動をさせる必要があります。

0

この問題は2回発生しました。これが私に起こった最初のプロジェクトで、Project Properties-> Build-> Advanced ...に行き、Debug Infoドロップダウンから "full"を選択しました。

2回目の私のglobal.asaxのブレークポイントはヒットしていませんが、ブレークポイントを乗り越えればこの警告が表示されます。「ソースコードは元のバージョンとは異なります。"

このケースでは、コードを保存するためにこのプロジェクトのバックアップコピーを作成し、そのコピーで作業していたことがわかりました。別のフォルダにあっても、元の仮想ディレクトリ:http://localhost:4952/

だから私は、プロジェクトのプロパティ - > Webベース>プロジェクトURLであることを変更し、私はちょうどhttp://localhost:49523/にポートを変更し、それが働いた

これは、仮想ディレクトリを作成するために私を促しました。私は賛成だと言って以来、ブレークポイントに問題はありませんでした。

1

y Visual Studioの開発サーバーを使用したいとIISを使用していない、あなたは

1(VS2015 Professionalでテストした)次の操作を行うことができOU)を実行している状態でアプリケーションプール - 使用したアプリケーションプールがアクセスすることで実行されていることを確認してくださいあなたのWebアプリケーションのページ(アイドルタイムアウトのために停止している可能性があります)。 Ctrl-Alt-PまたはDebug -> Attach to Process - - >あなたのアプリケーションに対応して、あなたのw3wpプロセスを検索

2)を処理するために取り付けます。

最近追加されたプロセスへのショートカットを作成するReAttach extensionを使用すると、プロセスへのアタッチを大幅に高速化できます。

3)アプリケーションプールのリサイクル - アプリケーションプールは、IISに入り、リサイクルまたはそれ以上の速度でリサイクルすることを確認してください。web.configと入力して、効果を変更しないでください(タグの外に空白を入れてください)

4)デバッグを開始 - ウェブアプリケーションの任意のページに対して、初期化を強制的に要求します。あなたには、いくつかのSystem.Diagnostics.Debug.WriteLine(...)を入れしようとしない理由あなたはGlobal.asax

protected void Application_Start() 
void Application_BeginRequest(Object sender, EventArgs e) 
protected void Session_Start(object sender, EventArgs e) 
+0

完全ではありませんが便利です:web.configに入り、効果のない変更(タグの外に空白を入れて)を保存します。終わった+1 :) – QMaster

関連する問題