ASP.NET MVCアプリをデバッグしようとすると、コントローラーのブレークポイントがヒットしなくなります。デバッグモードに入ると、通常の完全な円ではなく、警告の三角形が付いた空の赤い円が表示されます。これは奇妙なことに、これまでデバッグは正常に機能しており、私の環境ではしばらくの間、構成の変更が行われていません。
私は この質問 を見て、モジュールビューを確認しましたが、正しいモジュールがロードされていませんが、これを修正する方法がわかりません。また、関連するすべてのpdbファイルは、サイトのbinフォルダーにあります。
これを修正する方法について何か提案はありますか?
乾杯!
EDIT:アプリはIIS7でローカルサイトとして実行されており、VS 2008でデバッグしています
わかりましたので、4時間を無駄にした後、スタートアッププロジェクトとしてWebプロジェクトを設定すると問題が解決します。これは確かにバグでしょう...
私はそこに誰かを半日救うことを願っています:)
いくつかの可能性:
ソリューションにクライアントとサーバーがある場合(WPFおよびWCFアプリとしましょう)、必ず ' multiple startup projects 'を選択してください。 [これは受け入れられた回答に似ていますが、クライアントも実行する必要がある場合に役立ちます]
プロジェクトのリリースモードが選択されています。新しいマシンで(今日私が発見したように)フレッシュゲットを実行すると、VSは「リリース」構成プロファイルに切り替えるようです。
一部のチームメンバーが1つのプロジェクト(MVCプロジェクト)のデバッグ構成を削除しました。ソリューション構成は「Debug/AnyCPU」に設定されていましたが、その構成を確認すると、MVCプロジェクトのProject-ConfigurationはReleaseに設定されており、Debugのオプションはありません。他のすべてのプロジェクトは適切にDebugとして設定されています。
そのため、プロジェクト構成にデバッグを追加し直しました(「追加」ドロップダウンだけ...ソリューションに追加するボックスのチェックを外してください)。そしてヴィオラ...
試すこと:
ソリューションをクリーンアップしてから、再構築します。
それが機能しない場合は、ソリューションを閉じ、bin
およびobj
フォルダーを削除して、再ビルドします。
w3wp.exe
)。これらの答えのどれも私を助けませんでした。一部のブレークポイントはヒットしましたが、ヒットしませんでした。しかし、私は私の場合に問題を発見しました。
デバッグしようとしているURLとまったく同じ名前のファイルがまったく同じ仮想ロケーションにある場合、ファイルはIISによってブラウザに自動的に提供され、ブレークポイントは実際にはMVCコードが実行されないため、ヒットします。
私も同じ問題を抱えていました。ここをチェックしてください:ツール->オプション->デバッグ
[.Net Frameworkソースのステップ実行を有効にする]を選択して修正する
私がこの問題を抱えていたとき、ほとんどの場合、以下がうまくいきました:
プロジェクトのdllキャッシュが保持されている場所を見つけます(通常はASP.NET一時ファイル内)。次に、VSを閉じ、IISRESET/stop(IISを使用している場合)を実行し、dllキャッシュ内のすべてのファイルを削除します。 IISRESETを実行してVSを起動し、プロジェクトを開いて再ビルドします。
Visual Studioヘッダーのリリースオプションをデバッグに変更
私も同じ問題を抱えていました。ここをチェックしてください:ツール->オプション->デバッグ
スクリプトのチェックボックスをオンにします。アプリケーションを実行します。
インストールが破損したメッセージボックスが表示されたため、vs 2008の修復を行い、現在は機能しています。
それは役立つかもしれません:
Visual Studio 2015の単純なWeb APIプロジェクトでも同様の問題がありました。問題を解決したのは、スタートアッププロジェクトを正しいプロジェクトに設定することで簡単に修正できることを読んだ後です。同じソリューションに別のWeb APIプロジェクトがあったので、デバッグしているプロジェクトがどのindex.htmlをデバッグするのかを混同していると思ったので、現在のプロジェクトの名前をindex2.htmlに変更しました。次に、プロジェクトプロパティの[Web]タブを[特定のページ]に設定し、ページテキスト: "index2.html"で問題を解決しました。
コンパイルフレームワークのバージョンがプロジェクトのコンパイルフレームワークと同じであることを確認してください。これは、プロジェクトが4.5としてコンパイルされていて、Web構成のコンパイル属性が4.5.1としてデバッグしようとしたためです。
クリーン/リビルドは私にとってはうまくいきませんでした。 VSを再起動した。
VS 2012、ASP.NET MVC 3、IIS Express。
TFSでの変更を保留し、ソリューションの一部ではなくなった保留されたcsファイルにブレークポイントを設定しました。シェルブセットを取得すると、すべてが機能しました。
プロジェクトフォルダーを移動したため、私の解決策は基本的に私の間違いでした。私の解決策は、フォルダーを移動した後、「開く... Webサイトを開く」を使用せずにWebサイトのフォルダーを参照することでした。ソリューションの.slnファイルを参照せずに開きます。代わりに、「開く...プロジェクト/ソリューション」を使用してから、csprojファイルを参照して開きます。まずIIS(Express)を閉じます。再構築。最新のコピーを実行する必要があります。 .slnは毎回失敗します。
私は今日この問題を抱えていました-それが原因であることがわかりました:
Visual Studio 2008がクラッシュし、Cassini(組み込み開発Webサーバー)が元のポートで実行されたままになりました。
プロジェクトを再度開いて「開始」したとき、古い開発Webサーバーがまだ実行されていたため(気付かなかった)、元のポートで実行できませんでした。
ページは問題なく閲覧されましたが、使用していたURLがまだ古い開発用Webサーバーポートを指しているため、ブレークポイントにヒットしませんでした。