Pourquoi le débogueur ne s'arrêterait-il pas à un point de rupture dans mon ASP.NET application?

j'essaie de déboguer un grand ASP.NET application.

j'ai défini un point de rupture sur la première ligne de Page_Load par défaut.aspx.cs.

quand je lance l'application, mon point de rupture se transforme brièvement en un contour rond rouge avec une exclamation dans le , puis se transforme de nouveau en point de rupture régulier, puis l'application commence sans jamais s'arrêter à mon point de rupture .

MSDN dit ce symbole signifie que "l'emplacement du point de rupture n'a pas été chargé". Comment faire pour charger le point de rupture? Il a travaillé il y a quelques semaines. Quelles sortes de choses pourraient causer un point de rupture à "ne pas être chargé"?

Que puis-je faire pour que le débogueur s'arrête à nouveau à mon point de rupture?

Addendum:

Je ne peux toujours pas obtenir de débogage pour travailler en appuyant sur F5, mais je peux démarrer le site Web, puis faire debug / attach-processus pour passer en mode débogage. Si quelqu'un sait pourquoi cela fonctionnerait, mais quand j'appuie sur F5 cela ne fonctionnerait pas (les boutons de débogage n'apparaissent même pas sur F5), toutes les idées seraient les bienvenues.

39
demandé sur Edward Tanguay 2009-05-13 11:54:18

12 réponses

essayez de faire une reconstruction complète sur l'application. Faites attention que c'est dans la configuration" Debug".

autant que je comprenne (mais je ne suis pas un expert dans ces choses), cela peut se produire lorsque les fichiers d'information de débogage (.PDB) ne sont pas en phase avec la réalité compilée.

42
répondu Vilx- 2009-05-13 07:56:58

personnes.... J'ai trouvé une autre solution pour le point de rupture. Dans Attach to Process window sur Visual Studio 2010 et en utilisant Framework 3.5, par défaut détermine automatiquement les types de code à déboguer (v2.0, v1.1, v1.0) et (v4.0).

Visual Studio est confus et détermine automatiquement le code géré 2.0 comme le code géré 4.0 parfois.

Dans ce cas, vous devez cliquez sur "Sélectionner..."cliquez sur" Joindre à " et sélectionnez Gérer (v2.0 0, v1.1, v1.0).

concerne

17
répondu Augusto Mazzoni Pierzynski 2011-08-28 11:33:11

VS Debug Problem with IE8

comme c'est mon premier post sur Weblogs, j'ai décidé d'écrire sur un problème qui a été ouvert fréquemment sur le ASP.NET forum officiel qui est le VS debugger s'écrase avec IE8.

j'ai répondu au même problème 4 fois, donc j'espère que quelqu'un trouvera ce post très utile s'il fait face au même problème.

comment le débogueur VS a-t-il pu se planter avec IE8?

si vous avez ouvert plusieurs instances de IE8 et que vous tentez de déboguer votre projet, vous aurez surtout le problème où le débogueur VS s'arrête et ignore vos points de pause!

pourquoi?

IE 8 possède une fonctionnalité appelée Loosely-Coupled Internet Explorer (LCIE) qui permet à IE de fonctionner à travers plusieurs processus. http://www.microsoft.com/windows/internet-explorer/beta/readiness/developers-existing.aspx#lcie

les anciennes versions du débogueur Visual Studio sont confondues avec cela et ne peuvent pas comprendre comment s'attacher au bon processus.

pour résoudre ce problème, vous devez désactiver la fonction de croissance du processus de LCIE en suivant les étapes suivantes:

1) Open RegEdit 2) Parcourir vers HKEY_LOCALMACHINE - > SOFTWARE - > Microsoft - > Internet Explorer -> Main 3) Ajouter un dword sous cette clé appelée TabProcGrowth 4) Définir TabProcGrowth à 0

si vous rencontrez le même problème sur Vista ou une version plus récente, vous devrez également désactiver le mode protégé.

et puis allez-y et commencez à déboguer votre code :)

6
répondu madhusudhan.K 2011-12-01 00:56:00

si vous utilisez Visual Studio 2005 et IE8, je pourrais avoir une explication: IE8 a introduit une nouvelle fonctionnalité appelée Loosely-Coupled IE (LCIE) qui provoque des problèmes connus lors du débogage VS2005 ASP.NET applications. Voir cette thread sur DONC pour plus de détails et quelques solutions.

il s'est avéré que tous mes problèmes de débogage ont disparu quand j'ai arrêté toutes les instances d'exécution D'IE8 avant de commencer une course de débogage dans mon ASP.NET projet.

une autre raison pour laquelle je poste ici est de partager un blog que j'ai trouvé qui liste un grand nombre de solutions potentielles au problème "points de rupture ne fonctionne pas". C'est sympa parce que le blog répertorie en un seul endroit la plupart des solutions que j'ai trouvées dispersées sur Internet. Quoi qu'il en soit L'auteur du blog est George P. Alexander; je vais copier et coller les parties juteuses ici au cas où quelque chose arrive à l'article:

  1. utilisant des missiles guidés de précision: supprimer le .fichiers pdb dans votre obj et bin dossiers. Recompiler. Exécuter.

  2. Tapis bombe tout .dlls: supprimer et recharger tous les référencés .dll (Comme votre classe projets)

  3. la Libération d'un ADM: Si #1 & #2 ne fonctionne pas, supprimez le contenu de la très obj et bin dossiers lui-même de sorte que tout. pdb et .les dll sont anéanties. Recharger la .dll requis et de le donner coup.

  4. VS.Net magie: Fermer VS.Net et redémarrez. Reconstruire. Exécuter. Oui, c' parfois ne fonctionne pas.

  5. Windows magic: fermez votre ordinateur et redémarrez. Reconstruire. Exécuter.

  6. mode D'exécution: assurez-vous que VS.Net le mode d'exécution est défini à "Debug" et non "Release "

  7. Web.paramètres de configuration: assurez-vous que la balise "compilation" de L'élément XML votre web.fichier de configuration est un attribut avec debug = "true". Seulement si c'est les applications et services web seront activés ont leur .fichiers de l'APB générés avec le. dlls

  8. propriétés du Projet #1: assurez-vous que les Propriétés du Projet --> Debug --> Activer "ASP.Net le débogage est vrai" ou "Activer L'Hébergement de Visual Studio Le processus" (selon la version de VS.Net vous utilisez).

  9. propriétés du Projet n ° 2: assurez-vous que les Propriétés du Projet --> Propriétés De Configuration -- > Build --> "Générer des informations de débogage" est mis à "True".

  10. processus erroné joint: votre session de débogage ne peut pas être joint pour le bon processus. Vous pourriez avoir à étape - dans pour attacher manuellement le processus. C'est possible avec Web Service. L'option de joindre une le processus est dans le menu déboguer.

  11. "151900920 de Script" et non code de débogage: vous ne Pouvez pas déboguer des scripts ou code non géré? Assurez-vous que le projet Propriétés -- > Debug -- > " Enable ASP Débogage" ou "Activer non géré Débogage" (selon votre version de VS.Net) est définie sur true.

  12. directive @Page #1: assurez-vous que l'attribut AutoEventWireup dans votre .aspx document de la Page @ directive à "vrai".

  13. directive @Page #2: assurez-vous que l'attribut de Débogage dans votre .aspx mise à jour de la directive @Page du document "vrai." Si vous ne trouvez pas la attribut, c'est correct. Par défaut, il est vrai.

  14. Rogue .Dll: assurez-vous que vous n'avez pas d'autre exemple de l' .DLL courir qui se trouve ailleurs d'où votre chemin de Projet.

14.1 Voyous .DLLs Sleeper cell #1: Avez-vous installé votre projet .dll dans la Dossier GAC? Vous pourriez être en cours d'exécution de la .dll hébergé dans votre dossier GAC à la place de l'un dans le dossier bin. Enlever / Désinstaller le .dll du GAC et puis essayez à nouveau.

14.2 Rogue .DLLs Sleeper cell #2:

C:\Documents et Paramètres[Nom D'Utilisateur]\VSWebCache [Machine Nom]:

Libération une ADM (#3) sur la les dossiers qui sont liées à votre projet.

14.3 Sleeper cell #3 de Rogue DLLs: .dlls de votre projet qui mentent autrement où mais sont référencés dans votre projet. Vous pouvez trouver ces en examinant les propriétés du projet. Dans court, VS.Net fait référence à un autre .dll et pas celui chargé dans votre environnement de dev.

14.4 Rogue .DLLs Sleeper cell # 4: espérons que vous n'aurez pas à jouer avec ce dossier au moment où vous terminer avec les points ci-dessus...

Introduction C:\WINDOWS\Microsoft.NET\Framework [. Net version]\Temporary ASP.NET Files\

ce dossier peut contenir des les versions de .dll stockées dans votre Dossier Windows qui pourrait obtenir référencé en courant depuis VS.Net. Si ça arrive, ça craint. Vous pouvez supprimer autant de dossiers et de contenu vous pouvez vous rapporter à votre projet. Il peut être en lecture seule serrures vous auriez besoin pour la désactiver par la fermeture processus. Ce n'est plus un dernier effort de largage. Ne pas le faire si vous avez jamais joué avec vos fenêtres dossier. Dans la plupart des cas, quelque chose de fait ci-dessus avant ce point fait habituellement remédier. Donc, idéalement, vous n'avez pas à lisez ce point au moment où vous êtes fait avec les pointeurs. Et juste pour le record, je ne recommande pas personne à explorer cette option ou jouer autour de votre dossier Windows si vous ne pas avoir de doctorat en physique, Mathématique, Fenêtres et .Net.

autres conseils:

  1. fenêtre du Module: la fenêtre du module peut être consultée pendant que votre application est en train de fuir VS.Net (Debug --> Windows -- > Modules). Tous les modules de votre projet devrait y figurer. Si votre projet .dll est listé et le statut de la signification des Symboles est "Symboles Chargé", vous avez pas de problème.

si c'est un message lié à votre .apb fichier, goto "sélectionner les symboles" et le approprié. fichier pdb. Vous pourriez avoir pour redémarrer le débogage ou le chargement VS.Net encore. Le statut devrait maintenant changer à "Symboles chargés".

2. VS.Net Options: outil -- > Options -- > Débogage VS.Net à partir de 2005, il y a un autre nœud appelé "Symboles" où vous pouvez demander VS.Net pour recherchez les symboles. Ce peut être consulté via la fenêtre du Module lors du débogage trop.

4
répondu Jay Riggs 2017-05-23 10:31:32

avez-vous mis <compilation debug="true"> dans votre web.config?

3
répondu Miha Markic 2009-05-13 07:56:13

vous pouvez aussi essayer ce qui suit:

  1. fermez la solution et visual studio.
  2. Exécuter la commande iisreset /arrêt
  3. supprimer tout sous C:\windows\microsoft.net\framework\v2.0.50727\Temporary ASP.NET des dossiers. Si vous avez des problèmes de suppression de certains de ces fichiers, vous pouvez avoir une version de visual studio ou il est débogueur encore en cours d'exécution.
  4. Exécuter la commande iisreset /start
  5. ouvrir le solution en VS
  6. définir la construction pour déboguer
  7. Exécuter en tout Reconstruire au niveau de la solution
  8. Appuyez Sur La Touche F5
3
répondu Jonathan Parker 2017-10-23 23:44:36

j'ai eu un problème similaire avec les points d'arrêt qui ne fonctionnaient pas et, en même temps, dans la Console IIS Je n'ai pas pu éditer la configuration pour mon projet, c'est-à-dire que le bouton Éditer la Configuration a été grisé.

[pour trouver le bouton Modifier la Configuration: Démarrer / Tous les Programmes / Outils administratifs | Services D'Information Internet, puis agrandir l'ordinateur requis, agrandir les Sites web, agrandir le Site Web par défaut, localiser et faire un clic droit sur votre projet requis, sélectionner Les propriétés et puis le ASP.Net tab.]

j'ai découvert que dans IIS, le ASP.Net la version pour mon projet a été fixée à 4.0.30319. Une fois que j'ai réglé sur 2.0.50727 , le bouton Modifier la Configuration est devenu disponible (cliquable) et mes points d'arrêt ont fonctionné à nouveau.

j'ai également réalisé qu'il pourrait être intéressant de vérifier le ASP.Net version définie dans IIS pour "site Web par défaut" [dans la Console IIS, étendre les Sites web, droite cliquez sur site Web par défaut et sélectionnez Propriétés puis le ASP.Net tab], de sorte que tout nouveau projet créé dans Visual Studio acquière le réglage par défaut du Site web.

2
répondu Lloyd Conrade 2011-05-18 01:05:44

j'ai eu ce problème récemment (WinXP, VS2003), et j'ai essayé plusieurs des solutions ci-dessus sans succès. Puis, j'ai réalisé qu'il y avait plusieurs versions du runtime.Net installé. Donc, J'ai mis en place L'IIS 5.1, j'ai localisé le dossier virtuel approprié, je suis allé dans les propriétés et puis le ASP.NET tab, et a changé le ASP.NET version from 4.? au 1.1, et il est apparu que cela résolvait le problème. Il se peut que la solution soit celle-ci, PLUS une ou plusieurs des choses ci-dessus.

aussi, tout ce qui précède constituent un" évier de cuisine " de différentes choses à essayer. C'est comme jeter un tas de spaghettis contre le mur, en espérant que certains d'entre eux bâton. Et, certaines de ces" solutions " peuvent causer d'autres problèmes dans votre programme. Par exemple, la suggestion de définir AutoEventWireup="true" peut faire que certains de vos événements tirent deux fois!!! (voir http://support.microsoft.com/kb/814745 ).

1
répondu Austin 2013-10-17 22:12:52

toujours rechercher solution Configurations à définir comme " débogage " pour le débogage. Il peut changer de configuration après publication.

1
répondu Mohamed Alikhan 2017-06-20 10:12:14

pour moi, les propriétés du projet avaient été réinitialisées par un autre dev pour utiliser IIS Express et pas mon IIS Local avec. Ainsi, le projet s'est déroulé OK, mais rien a été frappé.

clic droit sur le Projet > Propriétés > Web > serveurs - changer pour IIS Local. Je sais que ça ne marchera pas pour tout le monde, mais j'espère que ça aidera quelqu'un.

0
répondu Julian Rosebury 2016-11-01 16:41:06
  1. allez à vos propriétés de solution.
  2. dans les propriétés de Configuration,définissez la configuration de construction à ' Debug 'au lieu de 'release' pour tous les projets de votre solution.
  3. cliquez sur Appliquer puis sur OK.
0
répondu Pankaj Devrani 2017-05-17 10:44:39

dans mon cas, le problème finissant par être lié à la fois à l'utilisation de l'IIS complet (Pas Express) et avoir une construction de débogage où il comprenait des symboles de débogage complet, mais aussi avait des propriétés de projet, Build , Optimize code vérifié.

sous Express, ça marche bien, mais sous full IIS ça ne marche pas. Visual Studio se fixe correctement au processus w3wp, mais il ne charge pas les symboles pour la dll optimisée. Dans Visual Studio vous pouvez aller à Debug , Windows , Modules ensuite, faites défiler la dll spécifique et voyez si sous la colonne Symbol Status il y a Skipped Loading Symbols. . Cliquez sur le bouton droit de la souris et sélectionnez Load Symbols pour que cela fonctionne.

un paramètre supplémentaire qui peut affecter ceci est si Visual Studio est défini uniquement pour déboguer le code utilisateur sous Debug , Options and Settings , Debugging , General , Enable Just My Code . Une fois optimisé, le dlls sera marqué comme code non utilisateur lors de l'exécution sous IIS complet, donc quand juste mon Code est permis à tous les points d'arrêt seront ignorés. Vous pouvez soit définir VS pour déboguer le code non-utilisateur ou définir la construction à ne pas optimiser pour permettre aux points de rupture d'être touchés.

0
répondu Jeremy Murray 2017-12-04 20:04:46