8

Visual Studioでは、MVCビューでブレークポイントを設定できないことがあります。これは私に何度も起こったことですが、すべての視点で起こるわけではありません。理由はわかりません。Visual StudioでMVCビューのブレークポイントが許可されない

ブレークポイントを配置するために左側のバーをクリックすると、通常の赤い円の代わりに白い円が配置されます。その上にカーソルを置いたときのメッセージは、 "ブレークポイントは現在ヒットしません。ソースコードは元のバージョンとは異なります。"ブレークポイントをヒットさせる方法について説明しますが、それは奇妙な結果をもたらし、私はそれをとにかく望んでいません。

エラーが正しい場合は、元のソースコードを実行します。私はVSの中で何が起こっているのか分からない。私は再建を試みるが、それは助けにはならない。私は、これは多くのことが原因である可能性があり、2012年

screenshot of trying to place a breakpoint in vs 2012 MVC razor view

+1

リリースで実行中で、pdbファイルを生成するように設定されていませんか?あなたは絶対にすることができます、他の何かがここで遊んでそれをブロックしています。しかし、これを引き起こす可能性のある多くの変数があります。 –

+0

私はデバッグで走っています。私の質問に含めるべき他の関連情報はありますか? – levininja

+0

あなたが追加できるものはそれほど多くありません。私が言ったように、非常に多くの変数が有効になる可能性があります。別のプロジェクトの出力ディレクトリからdllをコピーしている可能性があります。pdbを生成していない可能性があります。期待しているもの以外のファイルを指している可能性があります。 –

答えて

9

VSでデバッグモードで実行しているんだけど、いくつかの項目は、最近で私が助けてきた人を確認するには:

  • 最初のステップ:デバッグを有効にするには、DLLの横にPDBファイルが必要です。 (What is a PDB file?を参照)実行ディレクトリにPDBがあることを確認してください。

  • 古いDLLをすべて削除してbinフォルダから削除します。

  • アプリケーションで現在のコード(Visual Studioで使用しているのと同じバージョン)のビルドが実行されていることを確認してください。 「ビルド」または「デプロイ」をクリックしただけであると仮定しないでください。変化が検出されなかった場合、事態はしばしば起こらない。アセンブリのビルド時間を確認するか、何かを変更して再構築して、ファイルサイズの変更を確認します。

  • Web関連のものを実行している場合は、ブラウザにコードがキャッシュされていないこと、またはIISが長時間実行中のプロセスを保持していないことを確認してください。

  • 実行中のVisual Studio Development Serverインスタンスを強制終了します(これはタスクマネージャーまたはシステムトレイから行うことができます)。IEロゴのように見えます。その上にカーソルを置くと、走る)。

  • コマンドプロンプトからiisresetを使用してIISを再起動します。

  • Visual Studioでデバッグの設定を確認してください(Tools > Options > Debugging > Symbols)シンボルを自動的に読み込みたい場合、他のアセンブリをリンクする場合は、ここでPDBファイルを参照する必要があります。

+0

以下のコメントを参照してください。チェックするもの –

0

私はこの問題を回避するために見つけた最も簡単な解決策は以下のとおりです。

は、ビューが呼び出される前に右であるコントローラのコードにブレークポイントを設定します。その後、そのブレークポイントがヒットしたら、(F10を使用して)何度かステップスルーします。それは_ViewStart.cshtmlを経由し、おそらく別のものか2つを経由します。しかし、すぐにそれは視野に入るでしょう。

ビューに入ったら、F5キーを押して(続行)ビューのブレークポイントに移動します。

-1

ソリューション設定がリリース時にデバッグに設定されていないことを確認してください。

おかげ

0

FOMは、回答何もjavascriptのコードにブレークポイントを設定するために私のために働いていません。 私はmyscript.js \スクリプトを提出するために内部のJavaScriptコードを移動し、だから私は今朝、この問題を持っていたし、私のために修正が剃刀の構文に関連していた

<script src="@Url.Content("~/Scripts/myscript.js")"></script> 
1

にスクリプトブロックを置き換えます。

私は、if文

@If (my condition) 
{ 
    myVar1 = "blah blah blah" 
    @myVar2 = 1 <== This line here was causing my razor to crap out on render 
} 

内の変数を設定して、他のすべてのものは、しかし、良いものですので、不適切なかみそりの構文もブレークポイントの問題を引き起こす可能性があります。この場合は、コードブロック内のmyVar2の@記号でした。ちょうど

+0

この質問はVS2012の間でしたが、私は現在VS2015 –

0

@ kirk-broadhurstの回答に追加するには(可能であれば修正してください)、web.config、特にcompilationを再確認してくださいsystem.webの下のフラグ。デバッグ用にビルドしていても、debug属性がfalseに設定されていると、Razorのデバッグに関する問題が発生します。

関連する問題