wake-up-neo.com

Javascript-Haltepunkte in Visual Studio 2017

Ich habe gerade Visual Studio 2017 installiert. Nach dem Starten einer ASP.NET MVC-Anwendung erhalte ich die Meldung, dass das Chrome-Debugging in Visual Studio aktiviert ist.

Meine Haltepunkte in Visual Studio werden jedoch nicht erreicht. Die Haltepunkte in Razor-Code scheinen zu funktionieren, aber Javascript funktioniert nicht. Die Haltepunkte sind nicht vollständig rot, wie sie sein sollten. Ein Neustart oder Neuaufbau scheint keine Wirkung zu haben.

Ich habe das folgende Codebeispiel

@Html.Partial("_Test", Model.Test) // debugging works here

<script>
    var i = 1;
    console.log(i); // debugging does not work here or above
</script>

@section scripts {
    <script>
        var a = 11;
        console.log(a); // debugging does not work here or above
    </script>
}

Ich habe die Chrome-Debug-Konsole nicht geöffnet und die Option in Visual Studio ("JavaScript-Debugging aktivieren") aktiviert.

Laut diesem Blogeintrag sollte dies funktionieren: https://blogs.msdn.Microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in-google -Chrom/

Vermisse ich hier etwas? Kann es sein, dass dies in Visual Studio 2017 nicht funktioniert?

Ich habe nur eine Erweiterung und das ist Resharper, aber ich denke, das ist kein Problem.

28
ronaldm

Diese Funktion kann nicht für Javascript-Code in einer * .cshtml-Datei verwendet werden, sondern nur für Code in separaten * .js- (oder * .ts-) Dateien.

 enter image description here Beachten Sie, dass der Haltepunkt in der JavaScript-Datei aktiv ist, der Haltepunkt in der Rasiermesseransicht jedoch nicht.

Ich habe auch festgestellt, dass Haltepunkte für JavaScript-Dateien nicht getroffen werden, wenn beim Laden der Seite JavaScript-Code ausgeführt wird, wenn die Seite das erste Mal in der aktuellen Chrome-Sitzung geladen wird. Haltepunkte funktionieren nur, wenn das Dokument einmal vollständig geladen wurde.

22
NineBerry

Ein weiterer Tipp: Js Debug kann nur aktiviert werden, nachdem 'Start URL' beim Start/Debug festgelegt wurde. 

Nur auf diese Weise wird VS an den Browserprozess angehängt.

21
Lw Cui

Ich hatte das gleiche Problem. Ich habe die Anweisungen aus demselben Beitrag befolgt: https://blogs.msdn.Microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in- Google Chrome/

Ich habe Folgendes in Visual Studio gemacht: Gehen Sie zu Tools -> Options -> Debugging -> General und deaktivieren Sie die Einstellung "JavaScript-Debugging für ASP.NET (Chrome und IE) aktivieren". Änderungen gespeichert und dann die Webseite ausführen. 

Danach habe ich festgestellt, dass Chrome vor dem Laden meiner Seite nicht die "Debug-Webseite" angezeigt hat. Dann schloss ich meine Webseite und stoppte die Debugging-Sitzung.

Ich habe die Option "Javascript-Debugging für ASP.NET (Chrome und IE) aktivieren" wieder aktiviert, die Webseite dann mit IE ausgeführt und es hat funktioniert. Die Seite wurde angehalten und der Haltepunkt wurde in meinem visuellen Studio angezeigt.

11
Luis Art Guerra

Ich hatte das gleiche Problem, neu in .net Core. Eine Lösung, die für mich funktionierte, bestand darin, den Debugger hinzuzufügen. am Anfang des Skripts:

<script>
  debugger;

  -- rest of your jscript here
</script>
8
s1cart3r

Es funktioniert in vs 2017 nur mit der Aktivierungsoption "Javascript-Debugging für ASP.NET (Chrome und IE) aktivieren" und Einstellung des Debuggers. im js-Code in * .cshtml sowie in der * .js-Datei 

3
user1599615
  • Visual Studio Professional 2017 Version 15.8.1 
  • Chrome Version 68.0.3440.106 (Offizielle Version) (64-Bit)

Ich musste den Legacy-Chrome-JavaScript-Debugger aktivieren unter:

Optionen -> Tools -> Debugging -> Allgemein -> Aktivieren Sie den älteren Chrome JavaScript-Debugger für ASP.NET

0
Sanny Jacobsson

Zwei Optionen, die Sie ausprobieren könnten:

  1. Deaktivieren Sie die Option "JavaScript-Debugging für ASP.NET (Chrome und IE) aktivieren" in den VS-Optionen, und verwenden Sie dann den Debugger (F12) in Ihrem Browser.
  2. Starten Sie das Debuggen in Visual Studio und fügen Sie dann Ihre Haltepunkte in Solution Explorer -> Internet Explorer -> <your view name> hinzu. (Vorausgesetzt, Sie verwenden IE)
0
Phil Haselden

Für diejenigen, die Google Chrome Portable verwenden (oder der Browser-Debugliste manuell Chrome hinzugefügt haben), hilft dies:

https://docs.Microsoft.com/de-de/visualstudio/javascript/tutorial-nodejs-with-react-and-jsx?view=vs-2017#set-and-hit-a-breakpoint-in- der clientseitige Reaktionscode

Sie müssen dann manuell an die richtige Chrome-Instanz und an die Viola anschließen

0
amarax

Meine beste Vermutung hier (zumindest in meinem Fall, möglicherweise auch in Ihrem Fall) ist, dass es sich um Bündelung handelt. Das Projekt, an dem ich gerade arbeite, bündelt separate Skripte in einem Big Daddy-Skript (ohne die Debug-Konfiguration zu minimieren). Meines Erachtens ist, dass VS meinen Haltepunkt nicht diesem ultimativen Skript im Browser zuordnen kann.

Ich weiß, dass dies die Frage nicht beantwortet, da es nur eine Ahnung ist, aber ich hoffe, dass es uns in die richtige Richtung weist. Wenn wir dies gegen die Erfahrungen anderer bestätigen können, könnte dies zu einer echten Antwort werden.

0
John VanZwieten

Nachdem ich darüber nachgedacht hatte, dass die einzige Möglichkeit, dieses Problem zu lösen, darin bestand, Visual Studio 2017 mithilfe des Installationsprogramms zu reparieren, wurde mir klar, dass wir BundleTable.EnableOptimizations = true; in Bundle.config hatten. Ich entfernte diese Zeile und fügte sie zur Web.Debug.config-Transformation hinzu. Sie funktionierte wie erwartet.

0
Froman