web-dev-qa-db-fra.com

Points d'arrêt Javascript dans Visual Studio 2017

Je viens d'installer Visual Studio 2017. Après le démarrage d'une application ASP.NET MVC, je reçois le message que le débogage de chrome dans Visual Studio est activé.

Mais mes points d'arrêt dans Visual Studio ne vont pas frapper. Les points d'arrêt sur le code Razor semblent fonctionner, mais Javascript ne fonctionne pas. Les points d'arrêt ne sont pas complètement rouges comme ils devraient l'être. Un redémarrage, une reconstruction ne semble pas avoir d'effet.

J'ai l'exemple de code suivant

@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>
}

La console de débogage de chrome n'est pas ouverte et j'ai coché l'option dans Visual Studio (Activer le débogage Javascript ..) qui est activée.

D'après ce billet de blog, je pensais que cela devrait fonctionner: https://blogs.msdn.Microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects- in-google-chrome/

Est-ce que j'ai râté quelque chose? Se pourrait-il que cela ne fonctionne pas dans Visual Studio 2017?

Je n'ai qu'une extension, Resharper, mais je suppose que ce n'est pas un problème.

28
ronaldm

Cette fonctionnalité ne fonctionne pas pour le code javascript dans un fichier * .cshtml, mais uniquement pour le code dans des fichiers * .js (ou * .ts) distincts.

 enter image description here Notez comment le point d'arrêt dans le fichier JavaScript est actif, alors que le point d'arrêt dans la vue Razor ne l'est pas.

J'ai également remarqué que les points d'arrêt ne seront pas atteints pour les fichiers JavaScript lorsque le code JavaScript est exécuté lors du chargement de la page lorsque celle-ci est chargée pour la première fois dans la session Chrome en cours. Les points d'arrêt ne fonctionneront qu'une fois le chargement du document terminé.

22
NineBerry

Autre astuce: seul le débogage js peut être activé après la définition de "URL de démarrage" à l'exécution/au débogage. 

Ce n’est qu’ainsi que VS s’attachera au processus du navigateur.

21
Lw Cui

J'ai eu le même problème. J'ai suivi les instructions du même message: https://blogs.msdn.Microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in- Google Chrome/

J'ai effectué les opérations suivantes dans Visual Studio: Accédez à Tools -> Options -> Debugging -> General et désactivez le paramètre "Activer le débogage JavaScript pour ASP.NET (Chrome et IE)". Sauvegardé les modifications, puis exécutez la page Web. 

Après cela, j'ai remarqué que Chrome ne montrait pas la "page Web de débogage" avant de charger ma page. Ensuite, j'ai fermé ma page Web et arrêté la session de débogage.

J'ai réactivé l'option "Activer le débogage Javascript pour ASP.NET (Chrome et IE)", puis exécuter la page Web à l'aide d'Internet Explorer, et cela a fonctionné. La page s'est arrêtée et le point d'arrêt est apparu dans mon studio visuel.

11
Luis Art Guerra

J'avais le même problème, nouveau pour le noyau .net, une solution qui fonctionnait pour moi était d'ajouter un débogueur; en haut du script:

<script>
  debugger;

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

Cela ne fonctionne avec vs 2017 qu'avec l'option d'activation "Activer le débogage Javascript pour ASP.NET (Chrome et IE)" et avec le débogage; en code js en * .cshtml et en fichier * .js 

3
user1599615
  • Visual Studio Professional 2017 Version 15.8.1 
  • Version Chrome 68.0.3440.106 (version officielle) (64 bits)

Je devais activer le débogueur JavaScript Legacy Chrome sous:

Options -> Outils -> Débogage -> Général -> Activer le débogueur JavaScript hérité de Chrome pour ASP.NET

0
Sanny Jacobsson

Deux options que vous pourriez essayer:

  1. Désactivez l'option "Activer le débogage JavaScript pour ASP.NET (Chrome et IE)" dans les options VS, puis utilisez le débogueur (F12) dans votre navigateur.
  2. Démarrez le débogage dans Visual Studio, puis ajoutez vos points d'arrêt dans Solution Explorer -> Internet Explorer -> <your view name>. (Suppose que vous utilisez IE)
0
Phil Haselden

Pour ceux qui utilisent Google Chrome Portable (ou ajoutent chrome à la liste de débogage des navigateurs manuellement), ceci aide:

https://docs.Microsoft.com/en-us/visualstudio/javascript/tutorial-nodejs-with-react-and-jsx?view=vs-2017#set-and-hit-a-breakpoint-in- le-client-side-react-code

Vous devez ensuite joindre manuellement à votre propre instance de chrome et à votre alto.

0
amarax

Ma meilleure hypothèse ici (du moins dans mon cas, potentiellement dans votre cas également) est que cela a à voir avec le groupement. Le projet sur lequel je travaille actuellement regroupe des scripts séparés dans un script Big Daddy (sans réduire la configuration de débogage), donc mon intuition est que VS ne mappera pas mon point d'arrêt sur le script ultime exécuté dans le navigateur.

Je sais que cela ne répond pas à la question puisqu'il ne s'agit que d'un pressentiment, mais j'espère que cela nous orientera dans la bonne direction. Peut-être que si nous pouvons valider cela par rapport à l'expérience des autres, cela pourrait devenir une vraie réponse.

0
John VanZwieten

Après avoir pensé que le seul moyen de résoudre ce problème était d'effectuer une réparation sur Visual Studio 2017, à l'aide du programme d'installation, j'ai compris que nous avions BundleTable.EnableOptimizations = true; dans Bundle.config. J'ai supprimé cette ligne et l'ai ajoutée à la transformation Web.Debug.config et elle a commencé à fonctionner comme prévu.

0
Froman