10
votes

Visual Studio 2010 ne me permet pas de déboguer mon code

Ainsi, cette question intéressante m'a fait plaisir depuis quelques heures. Visual Studio 2010 Ultimate n'attache plus le débogueur et me permet de déboguer mon code.

Si j'utilise le construit dans le serveur de développement, alors tout fonctionne très bien. Si je passe à utiliser serveur Web IIS local ( http: // localhost / ), puis tout ce qu'il fait, il attache à w3wp. EXE, mais aucune DLL ou PDBS n'est chargée pour quoi que ce soit. Je peux aller à débogage> Windows> modules et littéralement rien n'est chargé dans cette fenêtre. Inversement, lors de l'utilisation du serveur de développement intégré, la fenêtre Modules affiche toutes les DLL et indique que les symboles de mes DLL ont été chargés. Quelque chose est évidemment mal. L'installation VS est entièrement osseuse.

Dans IIS, mon site Web est configuré avec ASP.NET 2.0 (car aucun 3.5 n'existe pour sélectionner dans la liste déroulante), ainsi que les visites de lecture / journal / index Cette option de ressource vérifiée dans l'onglet "Répertoire de domicile".

Certaines de mes idées échouées:

1) Si je m'attache au processus sur l'instance IExplore.exe dans laquelle le site Web est affiché, il charge la DLL d'Internet Explorer, mais pas la mienne.
2) J'ai redémarré l'ordinateur plusieurs fois de
3) J'ai invoqué devenv.exe / ResetUserData une fois de
4) Je l'ai confirmé que chaque projet est en effet mis à déboguer et non libération.
5) Supprimé tous les contenus \ bac et reconstitué la solution.
6) Supprimé toute la solution entièrement supprimée et repoussée à partir du contrôle de la source.

Quelqu'un peut-il me dire ce qui ne va pas avec cette chose? Je vais avoir un anévrisme du mal de tête qui me cause.


0 commentaires

5 Réponses :


0
votes

Avez-vous essayé de supprimer le cache du navigateur? Parfois, le navigateur est suspendu à l'ancien code qui est incompatible avec la construction actuelle et empêche ainsi le débogage.


1 commentaires

J'ai effacé le cache de IE, ainsi que des chromes. Aucun navigateur ne fonctionne lorsque j'utilise le serveur Web IIS local. Tous deux fonctionnent lorsque je l'ai défini sur le serveur intégré.



0
votes

J'ai eu un problème auparavant où dans l'écran de configuration de construction, certains projets sont non liés à une configuration de solution particulière, les obligeant à ne pas construire et ne sont donc pas déburgibles. Pouvez-vous confirmer si les modifications de code que vous faites ou non sont réellement construites et exécutées?

Aussi, quelle version de Windows et IIS êtes-vous en cours d'exécution? Est-il possible que votre processus soit exécuté sous un fichier AppPool avec un compte différent du compte que vous êtes connecté et peut-être que c'est un problème d'autorisations? Si c'est Vista / Win7, l'UAC est-elle allumée et utilisez-vous VS en tant qu'administrateur? Je vais aussi deux seconde la suggestion d'essayer un nouveau projet et de voir ce que cela fait. Êtes-vous dans le groupe d'utilisateurs de débogueur Groupe local sur la machine?


1 commentaires

Tous les projets sont actuellement définis pour créer dans Configuration Manager. 7) En outre, je n'ai pas référé, puis réattribuez les références aux projets qui sont des dépendances.



0
votes

Est-ce qu'il exécute l'application - sans le débogueur attaché? Ça sent comme si vous attachez le débogueur à un processus incorrect


1 commentaires

Il gère complètement l'application. Je suis une perte sur quel processus il pourrait être attaché à ce que - et s'il ait été attaché à un autre processus, pourquoi aucune de ces DLL ne figure dans la fenêtre du module?



3
votes

Vous devez l'attacher au processus de travail IIS, quel OS utilisez-vous? Assurez-vous de joindre avec les drapeaux indigènes gérés + dans la liaison au processus. Que se passe-t-il si vous venez d'exécuter (F5) votre application Web à l'intérieur de Visual Studio (qui attache automatiquement un débogueur)? Avez-vous des erreurs?


5 commentaires

On dirait que vous êtes sur quelque chose. J'ai fait une modification mineure et cela n'a pas été reflété. Le débogueur tente de joindre à W3WP.exe, comme indiqué ici: img710.imageshack.us /img710/4606/Outputwindow.png


Avez-vous des points d'arrêt définis? Si oui, lorsque Visual Studio est attaché, si vous allez à un point d'arrêt, qu'est-ce qu'il dit? Il y a généralement un message si un point d'arrêt ne peut pas être frappé


Vous savez, juste pour vous assurer que tout fonctionne, je suggérerais de commencer par une application Web neuf / fraîche (Event Visual Studio le crée). Une fois que vous vous êtes assuré que cela fonctionne (débogage) avec IIS, nous pouvons continuer à exclure d'autres possibilités. Il est possible que vous n'ayez pas attaché au processus correctement, cela se produirait si le code est chargé par CLR 4.0, mais vous êtes attaché avec le drapeau CLR 2.0 qui finit par le débogueur ayant des attentes différentes.


Ok, jour 2! @Ion - Oui, il est dit que le point d'arrêt ne sera pas touché car aucun symbole n'a été chargé. La fenêtre de modules ne montre aucune DLL ou PDBS chargé.


Le projet de test construit et fonctionne bien lorsqu'il est utilisé avec un serveur Web IIS local. Donc, ce doit être quelque chose avec mon projet.



1
votes

Eh bien, il y a bien de bonnes réponses ici, mais j'ai constaté que la cause fondamentale du problème pour moi était la configuration d'authentification du pool d'applications. Permettez-moi de jeter le scénario que j'ai expérimenté et la solution et peut-être peut-être aidera quelqu'un à gagner du temps ... et les cheveux.

scénario:
Je souhaite déboguer une application Web ASP.NET dans Visual Studio 2010 mais je ne peux pas utiliser le serveur Web Visual Studio intégré. La raison pour laquelle je ne pouvais pas utiliser le serveur Web intégré est que mon application référencée des assemblages construits spécifiquement pour une architecture 64 bits et que le serveur Web VS ne prendrait pas en charge ces éléments. Donc, je devais utiliser l'option "Utiliser personnalisé Web Server" dans les propriétés du site Web pour pointer le débogueur à une instance publiée de mon site sur un serveur Web IIS distant.

problème:
Même avec les options de débogage Web.config correctement définies pour publier des symboles de débogage dans la sortie de l'assemblage (c'est-à-dire la compilation debug = "true"), le débogueur ne s'attacherait pas au processus IIS distant et je n'ai pas appuyé de points d'arrêt

environnement:
Le débogueur Visual Studio 2010 a déjà été installé sur le serveur Web distant IIS et fonctionnait comme service Windows sous le compte LocalSystem.

solution :
Activez "Authentification anonyme" en plus de "Authentification Windows" sur le site Web hébergé sur le serveur Web IIS.

Dès que j'ai activé l'authentification anonyme, les symboles corrects ont été chargés par le débogueur de VS distant et j'ai pu toucher les points d'arrêt.

J'espère que cela vous aide à sortir.


0 commentaires