Manchmal erlaubt es Visual Studio nicht, Haltepunkte in MVC-Ansichten festzulegen. Das ist mir schon oft passiert, aber es passiert nicht bei jedem Blick und ich weiß nicht warum.
Wenn Sie auf die linke Leiste klicken, um einen Haltepunkt zu platzieren, wird anstelle des normalen roten Kreises ein weißer Kreis eingefügt. Die Meldung, wenn Sie den Mauszeiger darüber bewegen, lautet: "Der Haltepunkt wird derzeit nicht getroffen. Der Quellcode unterscheidet sich von der ursprünglichen Version." Es wird weiter beschrieben, wie Breakpoints getroffen werden können, aber das führt zu seltsamen Ergebnissen und ich will das sowieso nicht.
Wenn der Fehler korrekt ist, möchte ich den ursprünglichen Quellcode ausführen. Ich weiß nicht, was hinter den Kulissen von VS vorgeht; Ich versuche den Wiederaufbau und all das, aber es hilft nicht. Ich laufe in VS 2012 im Debug-Modus.
Dies könnte durch viele Dinge verursacht werden, aber ein paar Dinge zu überprüfen, denen ich Menschen in letzter Zeit geholfen habe:
Erster Schritt: Zum Debuggen muss neben der DLL eine PDB-Datei vorhanden sein. (Siehe: Was ist eine PDB-Datei? ) Stellen Sie sicher, dass Sie die PDB in der ausführendes Verzeichnis.
Reinigen Sie, um alle alten DLLs aus Ihren bin-Ordnern zu entfernen.
Stellen Sie sicher, dass Ihre Anwendung einen Build Ihres aktuellen Codes ausführt (dieselbe Version wie in Visual Studio). Gehen Sie nicht davon aus, dass Sie nur auf "Build" oder "Deploy" geklickt haben. Wenn keine Veränderungen festgestellt werden, passiert es oft nicht. Überprüfen Sie die Erstellungszeit der Assembly, oder ändern Sie etwas und erstellen Sie sie erneut, um die Änderung der Dateigröße zu sehen.
Wenn Sie etwas mit dem Internet zu tun haben, vergewissern Sie sich, dass ein Browser keinen Code zwischenspeichert oder dass IIS keinen langwierigen Prozess ausführt.
Töten Sie alle laufenden Visual Studio Development Server-Instanzen (Sie können dies über den Task-Manager oder einfacher über die Taskleiste tun - sie sehen aus wie ein IE-Logo und wenn Sie den Mauszeiger darüber bewegen, sagen sie Ihnen, welcher Port sie laufen weiter).
Starten Sie IIS erneut mit iisreset
von einer Eingabeaufforderung aus.
Überprüfen Sie die Einstellungen für das Debuggen in Visual Studio ( Tools > Options > Debugging > Symbols
) Sie möchten Symbole automatisch laden, und wenn Sie andere Baugruppen verknüpfen, müssen Sie hier auf ihre PDB-Dateien verweisen.
Also hatte ich dieses Problem heute Morgen und der Fix für mich war mit der Rasierersyntax verbunden.
Ich habe eine Variable innerhalb einer if-Anweisung gesetzt
%Vor%Alle anderen Dinge sind gute Dinge, aber eine unsachgemäße Rasierersyntax kann auch das Breakpoint-Problem verursachen. In diesem Fall war es das @ Symbol auf myVar2 innerhalb des Codeblocks ... Nur ein FYI
Die einfachste Lösung, die ich gefunden habe, um dieses Problem zu umgehen, ist:
Legen Sie einen Haltepunkt in dem Controller-Code fest, der direkt vor dem Aufruf der Ansicht ist. Wenn dieser Haltepunkt erreicht ist, gehen Sie mehrmals (mit F10) vor. Es wird durch _ViewStart.cshtml und vielleicht ein anderes Ding oder zwei gehen. Aber bald wird es zur Ansicht kommen.
Wenn Sie sich in der Ansicht befinden, gelangen Sie mit F5 (weiter) zum Haltepunkt in der Ansicht.
Um zur @ kirk-broughhurst Antwort hinzuzufügen, (bitte ändern Sie wenn möglich), überprüfen Sie Ihre web.config, speziell die compilation
Flagge unter system.web. Auch wenn Sie für Debug erstellen, wenn das debug
-Attribut auf false gesetzt ist, werden Sie Probleme beim Debuggen von Razor bekommen.
Tags und Links asp.net-mvc visual-studio visual-studio-2012 debugging breakpoints