web-dev-qa-db-fra.com

Lors du débogage de l'application ASP.NET MVC, les points d'arrêt ne sont pas touchés

Lorsque j'essaie de déboguer une application ASP.NET MVC, les points d'arrêt de mes contrôleurs ne sont pas touchés. En entrant en mode débogage, ils affichent simplement un cercle rouge vide avec un triangle d'avertissement au lieu du cercle complet normal. C'est étrange car le débogage fonctionnait bien jusqu'à présent et aucune modification de la configuration n'a été apportée dans mon environnement depuis un moment.

J'ai vu cette question et j’ai jeté un œil à ma vue des modules. Les versions correctes ne sont pas chargées, mais je ne sais pas comment y remédier. Tous les fichiers pdb pertinents se trouvent également dans le dossier bin du site.

Des suggestions sur la façon de résoudre ce problème?

À votre santé!

EDIT: L'application s'exécute en tant que site local sur IIS7 et je débogue avec VS 2008

25
Darko Z

Ok, donc après 4 heures perdues, je trouve que la configuration de mon projet Web en tant que projet de démarrage résout le problème! Ce doit sûrement être un bug ...

J'espère sauver quelqu'un une demi-journée :)

36
Darko Z

Peu plus de possibilités:

  • Si vous avez un client et un serveur dans votre solution (disons une application WPF et WCF), vous devez vous assurer de sélectionner " plusieurs projets de démarrage ". [Celui-ci est similaire à votre réponse acceptée, mais utile si vous avez également besoin d'un client exécuté]

  • Le mode de libération est sélectionné pour le projet. Lorsque je fais un nouveau get (comme je l’ai découvert aujourd’hui) sur une nouvelle machine, le VS semble vouloir basculer vers le profil de configuration «Release».

8
Simon_Weaver

Un membre de l'équipe a supprimé la configuration de débogage pour un projet (le projet MVC). Bien que la configuration de la solution ait été définie sur "Debug/AnyCPU", si vous avez cherché dans cette configuration, la configuration de projet pour le projet MVC a été définie sur Libérer, sans option pour le débogage, et tous les autres projets ont été définis comme débogage de manière appropriée. .

J'ai donc ajouté Debug aux configurations du projet (Il suffit de dérouler "Ajouter" ... décocher la case à ajouter à la solution). Et alto ...

5
Suamere

Choses à essayer:

  1. Nettoyez la solution, puis reconstruisez-la.

  2. Si cela ne fonctionne pas, fermez la solution, supprimez les dossiers bin et obj et régénérez.

  3. Si cela ne fonctionne pas, redémarrez le IDE après avoir effectué l'étape 2.
  4. Si vous déboguez un projet ASP.NET hébergé par IIS, assurez-vous que vous êtes attaché au processus correct (w3wp.exe). 
3
George Stocker

Aucune de ces réponses ne m'a aidé. Certains de mes points d'arrêt ont été touchés et d'autres pas. Mais j'ai découvert le problème dans mon cas.

Si un fichier se trouvant exactement au même emplacement virtuel porte exactement le même nom que l'URL que vous essayez de déboguer, le fichier sera automatiquement transmis au navigateur par IIS et le point d'arrêt ne sera pas atteint car aucun code MVC ne fonctionne réellement.

3
NightOwl888

Ce qui suit a fonctionné pour moi la plupart du temps quand j'ai eu ce problème:

Recherchez l'emplacement du cache de la DLL de vos projets (généralement dans les fichiers temporaires ASP.NET). Fermez ensuite VS, effectuez une opération IISRESET/stop (si vous utilisez IIS), supprimez tous les fichiers du cache de la DLL. Faites un IISRESET, démarrez VS, ouvrez votre projet et reconstruisez-le.

1
SirDemon

J'ai eu le même problème. Vérifiez ici: Outils-> Options-> Débogage

Corrigez en sélectionnant Activer le pas à pas source .Net Framework

1
Brian Ibbison

Modifier l'option de libération d'en-tête Visual Studio en Debug

1
Muhamed Shafeeq

J'ai eu le même problème. Voir ici: Outils-> Options-> Débogage

Cochez la case du script. Exécutez l'application.

J'ai reçu une boîte de dialogue d'installation corrompue, ainsi une réparation de vs 2008 et Fonctionne maintenant.

0
JS.

Il pourrait être utile de:

  1. Fermer Visual Studio
  2. Arrêter le pool d'applications dans IIS Manager
  3. Supprimer le dossier bin et obj
  4. Démarrer le pool d'applications
  5. Ouvrez Visual Studio et reconstruisez la solution
0
Fka

J'ai eu un problème similaire avec un projet API Web simple dans Visual Studio 2015. J'ai résolu le problème, après avoir lu que la solution de facilité consistait à définir le projet de démarrage sur le bon projet. Comme j'avais un autre projet d'API Web dans la même solution, j'ai supposé que le projet en cours de débogage mélangeait le fichier index.html à déboguer; Ensuite, en définissant l'onglet Web des propriétés du projet sur Page spécifique, le texte de la page: "index2.html" a résolu le problème.

0
Bill Durksen

Assurez-vous que la version de votre framework de compilation est identique à celle de votre projet. Je me suis heurté à cela, car le projet était compilé en tant que version 4.5 et l'attribut de compilation dans la configuration Web essayait de le déboguer en tant que version 4.5.1. 

0
Dan

Nettoyer/reconstruire n'a pas fonctionné pour moi. Le redémarrage de VS a fonctionné.

VS 2012, ASP.NET MVC 3, IIS Express.

0
Rik Hemsley

J'avais mis mes modifications en stockage dans TFS et un point d'arrêt défini sur un fichier cs mis à l'écart ne faisant plus partie de la solution. Une fois que j'ai récupéré mon plateau, tout a fonctionné.

0
JohnWrensby

Ma solution était essentiellement mon erreur parce que j'avais déplacé le dossier du projet. Ma résolution était, après avoir déplacé le dossier, NE PAS utiliser "Ouvrir ... Ouvrir le site Web" puis naviguer vers le dossier de votre site Web. NE PAS rechercher le fichier .sln de la solution et l’ouvrir avec cela. A la place, FAITES UTILISER "Ouvrir ... Projet/Solution", puis accédez à votre fichier csproj et ouvrez-le. Fermez d'abord IIS (Express). Reconstruire. Il devrait exécuter la dernière copie. Le .sln va vous bousiller à chaque fois.

0
MartyP

J'ai eu ce problème aujourd'hui - puis j'ai découvert que c'était arrivé parce que:

  1. Visual Studio 2008 s'était bloqué, laissant Cassini (le serveur Web de développement intrinsèque) en cours d'exécution sur le port d'origine.

  2. Quand j'ai rouvert mon projet et que je l'ai "commencé", il ne pouvait pas s'exécuter sur le port d'origine car l'ancien serveur Web de développement était toujours en cours d'exécution (ce que je n'ai pas remarqué).

  3. Les pages ont bien été parcourues, mais aucun point d’arrêt n’a été touché car l’URL que j’utilisais pointait toujours sur l’ancien port du serveur Web de développement.

0
Jimbo