41 votes

Points d'arrêt Javascript dans Visual Studio 2017

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

Mais mes points d'arrêt dans Visual Studio ne sont pas atteints. Les points d'arrêt du code Razor semblent fonctionner, mais pas ceux de Javascript. Les points d'arrêt ne sont pas entièrement rouges comme ils devraient l'être. Un redémarrage, une reconstruction ne semblent 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>
}

Je n'ai pas la console de débogage de chrome ouverte et j'ai coché l'option dans Visual Studio ('Enable Javascript debugging..') qui est activée.

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

Est-ce que je rate quelque chose ? Se pourrait-il que cela ne fonctionne pas dans Visual Studio 2017 ?

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

0 votes

Tu t'en sors mieux que moi. L'option permettant d'utiliser des points d'arrêt en JavaScript n'est même pas disponible.

1 votes

Si vous exécutez Visual Studio 15.9.12 en tant qu'administrateur et que vous essayez de placer un point d'arrêt dans le code javascript, même dans un fichier .cshtml, une fenêtre apparaîtra automatiquement pour vous demander d'activer le débogage JavaScript. Fenêtre contextuelle "Avertissement de débogage JavaScript" de Visual Studio Cependant, en ce qui me concerne, bien qu'il atteigne maintenant les points d'arrêt, je ne peux pas inspecter les variables, que ce soit en les survolant (la pop up ne s'affiche pas) ou en les ajoutant à la fenêtre de surveillance (il y aura une erreur avec 'error CS0103 : The name of 'variableNameHere' does not exist in the cur

34voto

NineBerry Points 923

Cette fonctionnalité ne fonctionne pas pour le code javascript à l'intérieur d'un fichier *.cshtml, mais uniquement pour le code dans des fichiers *.js (ou *.ts) séparés.

enter image description here Remarquez que 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 sont pas atteints pour les fichiers JavaScript lorsque le code JavaScript est exécuté pendant le chargement de la page, lorsque la page est chargée pour la première fois dans la session Chrome actuelle. Les points d'arrêt ne fonctionnent qu'une fois le chargement du document terminé.

0 votes

J'ai toujours le problème. Les points d'arrêt ne sont pas chargés et ne sont pas atteints. Est-ce qu'il me manque quelque chose ?

7 votes

Je viens de le faire fonctionner en exécutant Visual Studio en tant qu'administrateur.

1 votes

Alors, pourquoi devrions-nous utiliser une fonction aussi problématique ? N'est-il pas préférable d'utiliser Chrome ? Inspecteur à la place ?

26voto

Lw Cui Points 288

Autre astuce : le débogage de js ne peut être activé qu'après avoir défini 'start URL' dans run/debug.

Ce n'est que de cette manière que VS s'attachera au processus de navigation.

0 votes

J'ai lutté pendant des jours pour faire fonctionner le débogage JavaScript, et apparemment c'était dû à ce tout petit détail de configuration que personne n'a pensé à mentionner ailleurs. MERCI !

0 votes

S'agit-il d'un changement par rapport à VS 2013 ? Cela m'a permis de résoudre le problème après avoir travaillé avec le même projet sur VS 2013.

0 votes

@GarrGodfrey Je ne pense pas. C'est une toute nouvelle fonctionnalité de VS 2017.

14voto

Luis Art Guerra Points 143

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

J'ai fait ce qui suit dans Visual Studio : Allez dans Tools -> Options -> Debugging -> General et désactivez le paramètre "Activer le débogage JavaScript pour ASP.NET (Chrome et IE)". Enregistrez les modifications, puis exécutez la page Web.

Après cela, j'ai remarqué que Chrome n'affichait pas la "Debug webpage" avant de charger ma page. J'ai alors fermé ma page Web et arrêté la session de débogage.

J'ai réactivé l'option "Enable Javascript Debugging for ASP.NET (Chrome and IE)", puis j'ai exécuté la page web en utilisant IE, et cela a fonctionné. La page s'est arrêtée et le point d'arrêt s'est affiché dans mon studio visuel.

0 votes

C'est vrai, c'est la première fois que le débogage de javascript fonctionne sur une installation VS 2017.

13voto

s1cart3r Points 184

J'ai eu le même problème, nouveau sur .net core, une solution qui a fonctionné pour moi était d'ajouter debugger ; en haut du script :

<script>
  debugger;

  -- rest of your jscript here
</script>

4 votes

Je n'ai pas trouvé cela utile, car cela semble juste interrompre l'exécution sur la ligne "débogueur" sans me permettre d'examiner les variables dans VS. Y a-t-il quelque chose d'implicite ici que je ne comprends pas ?

5voto

Cela fonctionne dans vs 2017 seulement avec l'activation de l'option "Enable Javascript Debugging for ASP.NET (Chrome and IE)" et en paramétrant le débogueur ; dans le code js dans *.cshtml ainsi que dans le fichier *.js.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X