Les points d'arrêt de Visual Studio ne sont pas touchés
je travaille avec un ASP.NET projet MVC qui semble avoir des problèmes lorsqu'on se rattache au processus de L'IIS (w3wp.EXE.) Je lance la solution et IIS 8.5 sur ma propre machine locale donc je ne pense pas que cela ait quelque chose à voir avec notre réseau. Ce qui est étrange pour moi, c'est que je suis capable d'atteindre les points de rupture sur n'importe quelle autre solution que je corrige localement.
le problème que j'ai exactement est que les points de rupture se transforment en rouge, cercles creux et ne jamais se faire frapper. Généralement la solution pour Ceci est un nettoyage/reconstruction de la solution mais cela n'a pas fonctionné. J'ai confirmé que le code est mis à jour en ajoutant "jeter nouvelle Exception" à une page et en m'assurant qu'il montre l'exception. Encore une fois, ce problème n'arrive qu'avec cette solution. Toute autre solution avec laquelle j'exécute le débogueur fonctionne très bien. J'ai également essayé de redémarrer l'application pool, le site web, IIS, et aussi mon ordinateur.
quelques-uns des articles que j'ai lus mentionnaient que les programmes antivirus peuvent bloquer un débogueur à distance accéder au processus. Cependant, toute la configuration est contenue sur ma machine locale donc il ne semble pas que ce serait le problème. Cela me préoccupe un peu cependant parce que nous avons récemment embauché un nouveau informaticien qui a fait beaucoup de changements à la machine de tout le monde.
un autre point à ajouter qui est unique au sujet de cette application web est la reliure dans IIS. La liaison est " * " afin de tirer parti de certaines fonctionnalités personnalisées liées aux sous-domaines.
En attendant, je vais continuez à chercher une solution, mais si quelqu'un a une idée de ce qui pourrait causer cette solution de ne pas déboguer correctement je l'apprécierais vraiment.
EDIT: J'ai trouvé une solution qui suggérait de supprimer ASP.NET dossiers temporaires. Pas de chance.
14 réponses
Résolu. Il a fini par être une configuration incorrecte sélectionnée dans le menu de débogage. Je l'avais par erreur commuté à une configuration de libération qui ne pouvait pas charger les symboles pour le document. Commuté sur une configuration de débogage et les points d'arrêt frapper très bien maintenant.
pour ajouter à ce Qu'Abacus a mentionné ci-dessous, cela pourrait aussi être un web.config transformation de jouer avec votre. Dans notre cas, nous avons des configurations de libération qui suppriment le debug
l'attribut de la Web.la section compilation de config. Ci-dessous une capture d'écran d'un exemple et la liste déroulante de Visual Studio des configurations de construction.
NOTE: assurez-vous également que votre plate-forme est correcte avec la configuration. Dans mon cas, Dev.Debug|Mixed Platforms
ne construit pas correctement la solution mais Dev.Debug|Any CPU
.
Activer 'Mode De Compatibilité Gérée'. Allez à Outils - > Options - > Débogage et activez le Mode de compatibilité gérée.
je sais que ce n'est pas le problème de L'OPs, mais j'ai eu ça sur un projet. La solution avait plusieurs projets MVC et le mauvais projet a été défini comme démarrage.
j'avais aussi paramétré la configuration du(DES) projet (s) pour juste démarrer le processus/Débogueur et ne pas ouvrir une nouvelle fenêtre de navigateur.
donc à la surface, il semble que le débogueur démarre, mais il le fait pour le mauvais processus. Donc vérifiez cela et gardez à l'esprit que vous pouvez attacher de multiples procédés.
erreur stupide qui m'a laissé me gratter la tête pendant environ 30 minutes.
j'ai lutté pour toujours essayer de résoudre ce problème. Enfin c'est ce qu'il a fait pour moi.
SélectionnerDebug->Options->Options De Débogage->Général
CochezActiver .NET Framework source de gué.
(C'est peut-être tout ce que vous avez à faire, mais si vous êtes comme moi, vous devez aussi faire les choses indiquées ci-dessous. La solution ci-dessous corrigera également les erreurs lorsque votre projet charge de vieux assemblages/.les dossiers de l'APB malgré reconstruction et nettoyage.)
SélectionnerOutils -> Options -> les Projets et les Solutions -> Build et Run,
Décocher la case "ne construisez que des projets de démarrage et des dépendances sur Run",
Sélectionner Toujours Construire"Sur Exécuter, lorsque le projet ne sont pas à jour" liste déroulante.
clic Droit sur votre projet => Propriété => Web Vérifier que le bon serveur est sélectionné (IIS local ? IIS Express ?)
c'est Ce que fixe pour moi.
dans le Menu Visual Studio. Debug - > attacher au processus, puis cliquez sur le bouton select à côté de fixer, comme dans cette image Joindre au processus
et s'assure ensuite que l'option" déterminer automatiquement le type de code à déboguer " est sélectionnée. comme ci-dessous
J'espère que cela vous aidera.
j'ai eu le même problème.
il a été résolu en décochant le paramètre propriétés > Build > Optimize Code sur l'écran Propriétés de la page web (sous General ). Capture d'écran.
Welp dont je me sens comme un bafoon!
donc après des heures de combat avec VS 2017 j'ai réalisé ce que j'avais fait de mal. Espérons que cela aide quelqu'un d'autre. Donc, dans mon scénario, j'ai une application MVC et WebAPI dans une solution et j'utilise l'IIS local (pas express). Aussi j'ai mis en place les sites dans IIS en tant que domaines réels et j'ai édité mon fichier hôte pour que je puisse taper dans le domaine réel et tout fonctionne. J'ai aussi remarqué deux choses, la première était que le débogage du code MVC fonctionnait parfaitement. 2ème fixation à le processus a parfaitement fonctionné aussi, ce n'est que lors du débogage qu'il n'a pas atteint le point critique de mon API. clic droit projet webapi > propriétés > Web > URL du projet .... Cela a été la clé pour moi. Par défaut, il pointe vers localhost mais depuis que j'ai configuré le site dans IIS, j'ai oublié de changer l'URL du domaine du site. i.e. au lieu de locahost/il devrait dire http://{domain-name}/.
si aucun des éléments ci-dessus ne fonctionne, revérifiez votre code. Parfois, la raison pour laquelle le point de rupture semble ne pas frapper est due au bloc de code contenant le point de rupture n'est pas exécuté pour des raisons parfois inopportunes.
par exemple, en oubliant les " Handles Me.Load " m'est arrivé plusieurs fois de copier et coller du code:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
--this block of code will not execute
End Sub
et
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
--this block executes
End Sub
Si quelqu'un est à l'aide de Visual Studio 2017 et IIS et essaie de déboguer un projet de site web, le suivant a fonctionné pour moi:
- joindre le projet de site web au SII.
- l'Ajouter à la solution Fichier -> Ajouter -> Site Web Existant... et sélectionnez le projet à partir de la
inetpub/wwwroot
répertoire. - clic-Droit sur le projet de site web dans l'explorateur de solutions et sélectionnez Pages De Propriétés - > Options De Démarrage
- Cliquez sur Page Spécifique et sélectionnez la page de démarrage (Pour l'utilisation des services Service.svc, pour l'utilisation du site web par Défaut.aspx ou le nom personnalisé pour la page que vous avez sélectionnée).
- Cliquez sur utiliser le serveur personnalisé et écrire
http(s)://localhost/(nom du site web, tel qu'il apparaît dans IIS)
par exemple: http://localhost/MyWebSite
C'est elle! N'oubliez pas de vous assurer que le site web est courir sur L'IIS et que le site Web que vous souhaitez déboguer est sélectionné comme le projet de démarrage (clic-Droit -> Définir comme Projet de Démarrage).
message Original: comment déboguer votre ASP.NET projets en cours D'exécution dans le cadre de IIS
avait ce même problème dans un Xamarin.Les formes projettent après avoir converti manuellement la PCL de .net 4.6 à .net standard 2.0. C'était le correctif.
vous ne pouvez pas atteindre les points d'arrêt pendant que vous êtes attaché au processus IIS si vous n'avez pas ouvert une session sur votre compte Microsoft dans VS2017.
dans Visual Studio 2017, vous devez vous assurer que vous n'êtes pas en mode de configuration de sortie.
- ouvrir le menu build ddl
- Cliquez sur gestionnaire de configuration
- Changement de 'libération' de 'debug'
j'ai également fait face au même problème. mais la solution à mon problème est, le processus réel est différent du processus original. Habituellement, nous lions les services hébergés locaux par le processus w3wp. dans mon cas, le processus personnalisé est utilisé quand j'ai changer que mon problème a été résolu.
encore une chose, passez du mode release au mode debug. parce qu'en mode de publication le fichier pdb est mis à jour avec les détails du point de rupture. Donc assurez-vous que vous avez garder votre application en mode de débogage.