Pourquoi le débogueur pas s'arrêter à un point d'arrêt dans mon ASP.NET application?
Je suis en train de déboguer un grand ASP.NET application.
J'ai mis un point d'arrêt sur la première ligne dans le Page_Load en Défaut.aspx.cs.
Lors du démarrage de l'application, mon point d'arrêt tourne brièvement dans un rond rouge contour avec un point d'exclamation dans il, se transforme ensuite en un point d'arrêt, puis le application démarre sans jamais s'arrêter, à mon point d'arrêt.
MSDN me dit que ce symbole signifie "le point d'arrêt n'a pas été chargé". Alors, comment puis-je obtenir le point d'arrêt à charge? Il a travaillé il y a quelques semaines. Quelles sortes de choses pourraient entraîner un point d'arrêt pour "ne pas être chargé"?
Que puis-je faire pour que le débogueur s'arrête à mes points d'arrêt de nouveau?
Addendum:
Je ne peux toujours pas le débogage pour travailler en appuyant sur F5, mais je peux commencer le site web, puis faire debug/fixez-le processus pour obtenir en mode de débogage. Si quelqu'un sait pourquoi cela pourrait fonctionner, mais lorsque j'appuie sur F5, cela ne fonctionnerait pas (le débogage des boutons ne s'affiche même pas sur F5), toutes les idées seront les bienvenues.
- Dans mon cas, le même ASP.NET app fonctionne sur plusieurs domaines et utilise le domaine de la demande de choisir le contenu de servir. Il est configuré pour s'exécuter sur IIS local et via le fichier hosts, les domaines sont résolus à l'adresse 127.0.0.1. L'application a couru OK, mais le débogueur ne pas s'arrêter sur des points d'arrêt jusqu'à ce que je définir les propriétés du projet > Web > Serveur > Projet d'Url pour le domaine utilisé pour faire la demande. (Il contenait un autre domaine que le domaine d'application est disponible sous.)
Vous devez vous connecter pour publier un commentaire.
Essayer de faire une reconstruction complète de l'application. Attention, il est en "Debug" de configuration.
Comme je le comprends (mais je ne suis pas un expert en ces choses), cela peut se produire lorsque les informations de débogage des fichiers (.APB) sont en décalage avec le réel compilé chose.
Les gens.... J'ai trouvé d'autres solution pour le point d'arrêt dont stop.
Dans l'Attacher à la fenêtre de ce Processus sur Visual Studio 2010 et à l'aide de Framework 3.5, par défaut détermine automatiquement les types de code de debug (v2.0, v1.1, v1.0) et (v4.0).
Visual Studio devient confus et détermine automatiquement 2.0 géré code 4.0 code managé parfois.
Dans ce cas, vous devez cliquez sur "Sélectionner..." bouton "Attacher" et sélectionnez Gérer (v2.0, v1.1, v1.0).
Ce qui concerne
VS Debug Problème avec IE8
Comme c'est mon premier post sur les Blogs, j'ai décidé d'écrire à propos d'un problème qui a été ouvert fréquemment sur le ASP.NET forum officiel qui est la VS débogueur se bloque avec IE8.
J'avais répondu le même problème que 4 fois, donc j'espère que quelqu'un va trouver ce post très utile si il est face au même problème.
Comment le VS débogueur de collision avec IE8?
Si vous avez ouvert plusieurs instances de IE8 et vous essayez de déboguer votre projet, vous aurez la plupart du problème où le VS débogueur s'arrête juste et ignore vos points de rupture!
Pourquoi?
IE 8 a une fonctionnalité appelée Loosely-Coupled Internet Explorer (LCIE) dont les résultats dans IE cours d'exécution à travers de multiples processus.
http://www.microsoft.com/windows/internet-explorer/beta/readiness/developers-existing.aspx#lcie
Des versions plus anciennes de le Débogueur Visual Studio se confondre par ce et ne peut pas comprendre comment attacher le processus correct.
Pour surmonter ce problème, vous devez désactiver le processus de croissance de la fonctionnalité du LCIE en suivant les étapes ci-dessous:
1) Ouvrez RegEdit
2) accédez à HKEY_LOCALMACHINE -> LOGICIELS> Microsoft -> Internet Explorer -> Principal
3) Ajoutez une valeur dword sous cette clé, appelé TabProcGrowth
4) Définir TabProcGrowth à 0
Si vous rencontrez le même problème sur Vista ou plus récent, vous aurez également besoin de désactiver le mode protégé.
Et puis aller de l'avant et commencer à déboguer votre code 🙂
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 de VS2005 ASP.NET des applications. Voir ce fil sur de SORTE pour plus de détails et quelques solutions.
Il s'est avéré que tous mes problèmes de débogage a disparu lorsque j'ai arrêté toutes les instances en cours d'exécution de IE8 avant, j'ai commencé un débogage exécuter dans mon ASP.NET projet.
Une autre raison pour laquelle je vais poster ici est de partager un blog que j'ai trouvé qui répertorie un grand nombre de solutions potentielles pour les " points d'arrêt ne fonctionne pas problème. C'est agréable parce que le blog de listes dans un endroit que la plupart des solutions que j'ai trouvées dispersées sur l'Internet. De toute façon l'auteur du blog est George P. Alexandre; je vais copier et coller le juteux pièces ici, dans le cas où quelque chose arrive à l'article:
Vous pouvez également essayer les suivantes:
Avez-vous mis
<compilation debug="true">
dans votre site web.config?J'ai eu un problème similaire avec des points d'arrêt qui ne travaillent pas et, dans le même temps, dans la Console IIS, je n'étais pas en mesure de modifier la configuration pour mon projet, c'est à dire la modification de la Configuration du bouton est grisé.
[Pour en savoir la modification de la Configuration du bouton: Démarrer | Tous les Programmes | Outils d'Administration | Services Internet, puis développez l'ordinateur, développez Sites Web, développez Site Web par Défaut, recherchez et cliquez droit sur votre projet, sélectionnez Propriétés puis l'ASP.Net onglet.]
J'ai découvert que dans IIS, le ASP.Net version pour mon projet a été mis à 4.0.30319. Une fois que j'ai définir 2.0.50727, la modification de la Configuration du bouton devient disponible (cliquable) et mes points d'arrêt a de nouveau fonctionné.
J'ai aussi réalisé qu'il pourrait être utile de vérifier l'ASP.Net version mettre dans IIS pour "Site Web par Défaut" [dans la Console IIS, développez Sites Web, clic droit sur Site Web par Défaut et sélectionnez Propriétés puis l'ASP.Net tab], de sorte que tous les nouveaux projets créés dans Visual Studio acquérir le Site Web par Défaut.
J'ai eu ce problème récemment (WinXP, VS2003), et j'ai essayé les solutions ci-dessus, sans succès. Ensuite, j'ai réalisé qu'il y avait plusieurs versions de la .Net runtime est installé.
Donc, j'ai apporté IIS 5.1, trouve le bon dossier virtuel, est allé dans les propriétés, puis l'ASP.NET onglet, et a changé le ASP.NET la version 4. l'? à 1,1, et il semble que cela a résolu le problème. Il se pourrait que la solution est présente, plus une ou plusieurs des opérations ci-dessus.
Aussi, tous les ci-dessus 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, certains de ces "solutions", qui peut causer d'autres problèmes dans votre programme. Par exemple, la suggestion de réglage AutoEventWireup="true" peut causer certains de vos événements à feu deux fois!!! (voir http://support.microsoft.com/kb/814745).
Toujours regarder pour Solution Configurations être Définie Comme "Debug" pour le débogage.
Il peut changer de configuration de Version après la publication.
Pour moi, les Propriétés du Projet avait été remis à zéro par un autre dev à 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 de changement de Local IIS.
Je sais que cela ne fonctionne pas pour tout le monde, mais espérons que cela aide quelqu'un.
Dans mon cas, la question se terminant par être lié à la fois à l'aide de IIS complet (pas Express) et d'avoir une version de débogage où il inclus les symboles de débogage mais ont aussi des propriétés du projet,
Build
,Optimize code
vérifié.En vertu de l'Express, cela fonctionne bien, mais sous IIS cela ne fonctionne pas. Visual Studio s'attache au processus w3wp correctement, mais il ne se charge pas de symboles pour l'optimisation de la dll. Dans Visual Studio, vous pouvez aller à
Debug
,Windows
,Modules
puis faites défiler l'écran pour la dll spécifique et de voir si, en vertu de laSymbol Status
colonne, il montreSkipped Loading Symbols.
. Cliquez-droit dessus et sélectionnezLoad Symbols
pour le faire fonctionner.Un autre paramètre qui peut affecter ce est si Visual Studio est situé à seulement déboguer le code de l'utilisateur en vertu de
Debug
,Options and Settings
,Debugging
,General
,Enable Just My Code
. Une fois optimisé, la dll sera marqué comme pas le code de l'utilisateur lors de l'exécution sous IIS complet, alors que Seulement Mon Code est activé, les points d'arrêt seront ignorés. Vous pouvez soit définir VS debug non le code de l'utilisateur ou de l'ensemble de la construction afin de ne pas optimiser pour les points d'arrêt permettent d'être frappé.Ce qui m'a poussé les noix pendant une semaine jusqu'à ce que j'ai finalement remarqué un paramètre manquant.
Cela s'appuie sur Jay Riggs réponse, mais pour Visual studio 2010 au lieu de 2005.
Dans les propriétés du projet -> Web -> Débogueurs, assurez-vous que l'ASP.NET le débogueur est cochée.
Debug=>Options=>Général => décocher la case "Permettre le Juste Mon Code"
Cela a fonctionné pour moi