Visual Studio 2013 ne pas atteindre les points d'arrêt
Je travaille avec une ASP.NET solution dans Visual Studio 2013 qui ne parvient pas à frapper les points d'arrêt. Visual Studio touchent des points d'arrêt sur d'autres solutions, et les points d'arrêt dans cette solution précédemment travaillé. Mais à cette époque, ils ne parviennent pas à travailler.
Je suis à l'aide de Visual Studio 2013 Ultimate, mise à Jour 4. C'est installé sur Windows 8.1, 64 bits.
C'est un MVC solution qui contient 3 projets: BusinessEntities, DataAccessLayer (DAL) et d'un projet Web. Les points d'arrêt dans tous ces projets ne parviennent pas à travailler. J'ai même essayé un point d'arrêt à l'intérieur de l'Index ActionResult pour la maison contrôleur, et qui encore a omis de s'arrêter au point d'arrêt.
Dans Visual Studio, ruban, solution de configuration est défini à Debug. En outre, le Gestionnaire de Configuration montre que tous les 3 de mes projets ont un jeu de configuration de Débogage. Redémarrer IIS, de redémarrer Visual Studio, et le redémarrage ne résout pas ce problème. La sélection de Construire > Nettoyer la Solution, Build > Reconstruire, puis Debug > Démarrer le Débogage n'a pas le fixer.
Dans le web.config, debug est définie à true dans ce nœud:
<system.web>
<compilation debug="true" targetFramework="4.0" />
Il y a des .pdb fichiers dans la corbeille de répertoires de mes projets. J'ai vérifié qu'ils sont supprimés lorsque la solution est nettoyé, et recréé lorsque c'est reconstruite.
De quoi dois-je vérifier? J'en ai vraiment besoin pour obtenir les points d'arrêt de travail dans cette solution. Merci.
========
Mises à jour sur 12/30/2014 - Dessous sont plusieurs choses que j'ai essayé, à la suite des commentaires de @paul.abbott.wa.nous. Plusieurs commentaires que j'ai faits sont supprimés et simplement ajoutés ici pour plus de clarté.
========
Je suis démarrage de l'application par VS, et qu'il tourne sous IIS. La version de IIS 8.5. En exposant le nom du processus (via le Système.Diagnostics.Processus.Fonction getcurrentprocess().ProcessName), c'est w3wp.
Dans IIS, l'application web a un nom de site comme "local.monsite", et il y a une entrée correspondante dans mon fichier hosts. Le site utilise les DefaultAppPool, qui emploie le .NET CLR version 4.0 et la gestion Intégrée des Mode Pipeline. Les 3 applications dans ma solution cible .NET Framework 4.
Si je passe ce retour à IIS Express, le débogueur commence à travailler. La version de IIS changements à 8.0, et le nom du processus est bien sûr iisexpress. Techniquement je n'ai pas à exécuter ce sous IIS sur mon poste de travail, mais je préfère le faire. Qu'ai-je mal configuré ou négligé dans IIS qui pourrait expliquer le débogueur défaut?
Examiner les paramètres de serveur de projet sur l'onglet Web de la page de propriétés, j'ai remarqué que le menu est réglé sur "IIS Express". Lors du basculement de que pour Locale "IIS", j'ai été invité à exécuter VS en tant qu'Administrateur. Après avoir fait cela, j'ai été en mesure de modifier le serveur IIS Local, et a frappé le débogueur. J'ai vérifié dans le changement, fermé VS, lancé VS pas en cours d'exécution en tant qu'Administrateur, et chargé la solution. De projet web, le chargement a échoué avec le message suivant: Le Projet d'Application Web [MySiteName] est configuré pour utiliser IIS. Impossible d'accéder à la métabase IIS. Vous n'avez pas de privilèges suffisants pour accéder à des sites web IIS sur votre machine.
Finalement, certaines sections de ce site emploiera l'authentification Active Directory. Donc, est la solution que j'ai besoin pour exécuter le site sous IIS Express, ou toujours exécuter VS en tant qu'Administrateur si je veux exécuter le site sous IIS? Merci.
J'ai trouvé une solution pour obtenir passé le message d'erreur “Le Projet d'Application Web [MyApp] est configuré pour utiliser IIS. Impossible d'accéder à la Métabase IIS. Vous n'avez pas de privilèges suffisants pour accéder à des sites web IIS sur votre machine.” Suivez les étapes de ce post. Erreur - Impossible d'accéder à la métabase IIS
Après l'octroi de mon compte accéder à la intetsrv\config dossier de projet web, chargé correctement dans Visual Studio, sans courir VS en tant qu'administrateur.
Mais maintenant lorsque je lance le site d'un autre message d'alerte s'affiche: “Impossible de démarrer le débogage sur le serveur web. IIS n'a pas de liste d'un site web qui correspond à l'lancé URL. Cliquez sur Aide pour plus d'informations.” Au départ, j'ai juste cliqué sur “Créer un Répertoire Virtuel” et a lancé de nouveau, mais que même alerte réapparu.
J'ai donc sélectionné le bouton Aide de l'alerte. Qui mène à cette page MSDNqui propose environ 2 douzaines de choses à vérifier, avec la moitié du nombre de liens vers d'autres articles. Je me sens un peu comme Alice au pays des Merveilles, dès maintenant, de se diriger plus vers le bas le trou de lapin.
2/3/2015 mise à Jour: Ma solution pendant l'exécution de cette opération sur le serveur IIS local de l'instance a été l'exécution de Visual Studio en tant qu'Administrateur. En fin de compte, nous avons changé de l'application pour utiliser IIS Express, puis abandonné par la suite l'application pour une autre solution, une collègue de travail intégré. Cette décision n'avait rien à voir avec ce problème. Merci à tous pour vos commentaires et idées.
3/7/2016 mise à Jour: En ce moment je suis incapable de reproduire ce problème, comme nous n'avons plus la solution dans l'état où il était lorsque j'ai travaillé l'année dernière. Je vous serais reconnaissant si un modérateur peut fermer cette question. Les options pour la fermeture de ce ne sont pas alignées avec mon scénario actuel, mais peut-être quelqu'un d'autre va trouver les suggestions ci-dessous utiles si elles rencontrent ce scénario. Merci à tous ceux qui ont contribué d'une suggestion.
source d'informationauteur Ken Palmer
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que:
J'ai rencontré ce problème avant et résolu après que j'ai reconstruire le package de solution.(à droite, cliquez sur package de solution et d'exécuter reconstruire)
Voici une liste d'idées que je garde pour une telle occasion.
Vérifier où votre fichier dll est référencé à partir de, et de s'assurer que le code que vous essayez de déboguer.
Vérifier que vous êtes dans le mode correct lors de la construction: Debug/Release, car ils peuvent mettre les dll dans des endroits différents.
Êtes-vous attaché à la bonne du processus?
Pour un site web sur IIS, c'est le code que vous travaillez sur le même que le code s'exécutant dans IIS?
Aller à Déboguer > Windows > Modules et si la dll est là, cliquez droit et les symboles de charge.
Si ce n'est pas dans la liste, essayez d'exécuter le code de toute façon. Parfois, même si il est dit que le point d'arrêt ne sera pas touché, c'est parce que la dll n'est pas chargé jusqu'à ce que vous entrez dans un scénario qui en a besoin. Essayez le scénario qui dépend de la dll, et c'est peut frapper le point d'arrêt, de toute façon.
Redémarrez votre navigateur. Vous pourriez avoir quelque chose en cache à partir d'une dll plus ancienne.
De ma précédente expérience s'il vous plaît tenir compte de ces :
Cliquez-droit sur le point de rupture => Site => cochez la Case "Autoriser le Code Source doit être différente de la version originale". Si vous avez installé resharper , C'est probablement vous aider.
Si vous êtes en appel par appel Ajax , assurez-vous que vous n'avez pas java-erreur de script sur la page ( pour ce que IE attraper js erreurs par défaut)
Quelques fois c'est parce que de ne pas construire soigneusement , de Sorte que le nettoyage de la
solution ( clic droit sur la solution et choisir "
clean solution
"point ) puis "
Rebuild Solution
" .Quelques fois c'est parce que vous pouvez avoir désactivé l'option de compilation pour
certaines bibliothèques de classes , de Sorte que, dans cette situation, vous avez besoin de reconstruire ces
classe-les bibliothèques exclusivement . (vous pouvez la trouver en vérifier le choix
"
Configuration Manager
" élément de la "Build
" menu)Espérons que ces aider