web-dev-qa-db-fra.com

Visual Studio 2013 ne peut pas déboguer javascript dans cshtml

J'ai une application Web ASP.NET créée avec Visual Studio 2013. J'essaie de déboguer JavaScript dans un fichier CSHTML. Cependant, chaque fois que je lance la page Web, tout point d'arrêt se transforme en flèche de cercle rouge et indique: "Le point d'arrêt ne sera pas atteint actuellement. Aucun code exécutable du type de code cible du débogueur n'est associé à cette ligne. Les causes possibles incluent: compilation conditionnelle, optimisations de compilateur, ou l'architecture cible de cette ligne n'est pas prise en charge par le type de code de débogueur actuel. "

Récemment, le projet a été basculé pour prendre en charge MVC et RAZR, que je ne connais pas bien, et c'est exactement au début de ce problème. Cependant, la recherche de ceux-ci a donné des résultats qui ne résolvent pas mon problème.

Web.config:

<compilation debug="true"...>

Je sais que je peux déboguer JavaScript avec Firebug ou un autre outil de navigateur, mais je préférerais de loin le débogage de Visual Studio car c'est à cela que je suis habitué.

40
JuniorIncanter

Il s'agit donc apparemment d'un "problème connu" qui sera résolu dès que possible. Un travail temporaire qui fonctionne pour "certaines" personnes consiste à s'assurer que tout Javascript se trouve dans un fichier séparé.

Cela est dû au fait que RAZR et Javascript dans le même fichier et Visual Studio 2013 ne sont pas en mesure de gérer le débogage dans cette instance.

45
JuniorIncanter

Je ne sais pas quel est votre problème particulier, mais si vous voulez forcer un point d'arrêt de débogage à se produire toujours, ajoutez debugger; à la ligne sur laquelle vous souhaitez qu'il s'arrête, et il s'arrêtera. Ceci indépendamment de l'emplacement du JS (dans un fichier .js, .html, cshtml, etc.)

Voici un article de blog à ce sujet:

http://sumitmaitra.wordpress.com/2013/12/11/quickbytes-visual-studio-2013-and-javascript-debugging/

Je suis également d'accord que JS devrait aller dans un fichier .js (que je n'ai jamais eu de problème pour ajouter un point d'arrêt dans un fichier .js), mais pour un prototypage rapide, c'est une solution que vous pouvez utiliser.

Si cela ne fonctionne toujours pas, vous pouvez toujours vous les outils F12

21
joe_coolish

Le seul navigateur qui permet de déboguer un fichier javascript à partir de Visual Studio est Internet Explorer. (c'est ce que j'ai découvert après avoir testé mon application sur différents navigateurs)

12
Mile Laszlo

Une chose supplémentaire à vérifier. Si vous avez un App_Start | BundleConfig.cs (fourni avec MVC 4 - ou peut-être 3), définissez BundleTable.EnableOptimizations sur false (ou, comme je l'ai fait, enveloppez-le dans un #if! DEBUG #endif et prenez le paramètre par défaut) .

5
Randy Kreisel

Je mets mon javascript dans un fichier séparé et débogue avec IE sinon cela ne fonctionnera pas.

Pour une raison quelconque chrome ne vous permet pas d'entrer dans le javascript.

5
Joe

J'ai essayé et échoué à utiliser Chrome puis IE et j'ai fini par utiliser l'addon Firebug dans Firefox, et j'ai pu déboguer et définir des points d'arrêt dans mon JS sans problème (dans une application MVC6 sur Visual Studio 2015 où c'est apparemment toujours un problème?!) ...

FYI - Quand j'ai essayé de déboguer mon JS dans Chrome en utilisant les outils de développement F12, il m'a dit que ce n'était pas une option car le débogueur était déjà attaché à un autre processus ...

0
Dan B

Pour les personnes venant ici en 2017, je veux partager cela j'ai eu le même problème avec VS2017 Enterprise RC, et avec VS 2015 Community with - tout navigateur sauf Internet Explorer. L'utilisation de IE a fait l'affaire pour moi.

De plus, dans VS2017, j'ai dû ajouter undebuggerinstruction pour que VS commence à regarder les points de débogage.

Enfin, je voudrais demander au moins un commentaire de personnes votant contre.

0
alexlomba87