Question Ne peut pas casser dans global.asax / Application_Start


J'ai eu un point de rupture sur la première ligne de Application_Start(), mais Visual Studio ne se brisera pas dessus.

Visual Studio s'est attaché au processus de travail IIS:

L'attachement automatique au processus '[2092] w3wp.exe' sur la machine 'SRD00510' a réussi.

Mon point d'arrêt dans le contrôleur domestique fonctionne.

mettre à jour

J'ai essayé:

  • iisreset
  • redémarré studio visuel
  • Redémarré.
  • Essayé de réinstaller aspnet (aspnet_regiis -i)

24
2018-05-30 13:10


origine


Réponses:


En lisant votre question, je suppose que vous utilisez IIS pour le débogage, pas Visual Studio Development Server.

Dans ce cas, le démarrage de l'application de débogage est délicat car il n'est appelé qu'une seule fois lorsque le pool d'applications est démarré ou recyclé. Lorsque Visual Studio se connecte au processus, Application_Start a déjà été exécuté.

L'astuce consiste à recycler le pool d'applications sans détruire le processus auquel vous êtes attaché.

Procédez comme suit:

  1. Dans Visual Studio (doit être exécuté en tant qu'administrateur), définissez votre point d'arrêt dans global.asax.cs et commencez à déboguer comme d'habitude (F5). La page s'ouvre dans votre navigateur Web, mais le point d'arrêt n'est pas touché.
  2. Maintenant, l'astuce: Avec un éditeur de texte, ouvrez web.config d'où il est desservi par IIS, modifiez-le (par exemple, entrez une ligne vide quelque part) et sauvegarde le. Contrairement au recyclage du pool d'applications dans IIS, cette opération permet au pool d'applications de recycler (et donc de traverser Application_Start dans global.asax.cs la prochaine fois que le site Web est appelé) sans tuer le processus auquel vous êtes attaché.
  3. Dans votre navigateur Web, rechargez la page. Le point d'arrêt doit être atteint maintenant!

Cela fonctionne pour moi (IIS 7.5, VS2015).


50
2017-10-01 08:50



Placez cette ligne dans votre Application_Start ().

Debugger.Break();

Cela vous présentera une boîte de dialogue qui vous permettra de sélectionner un débogueur. Vous devrez peut-être redémarrer le pool d'applications.


14
2018-05-30 13:20



Application_Start() ne s'exécute qu'une fois, au démarrage de l'application. Voici quelques points de redémarrage de l'application:

  • modifications de web.config
  • recycler le processus de travail - vous pouvez le faire dans le Gestionnaire des services Internet ou en exécutant iisreset sur la ligne de commande.

6
2018-05-30 13:13



Ma solution consiste à utiliser le "Visual Studio Development Server" pour traiter les problèmes de classe d'application (Global.asax). Une fois terminé, je reviens à IIS.


2
2017-09-09 06:19



Je suppose que vous chargez l'application en cliquant sur le bouton "debug" dans Visual Studio? C'est ce que je fais (dans VS 2012) et je vois des problèmes similaires. Appuyez sur ce bouton la première fois pour lancer l'application et atteindre correctement le point d'arrêt. Mais il semble qu'après avoir arrêté le débogage de l'application elle-même continue. Ainsi, les futures tentatives de débogage ne concernent que le processus existant.
Il y a un bouton "Redémarrer" à côté du bouton "Arrêter le débogage", donc je suppose que cliquer au moins changerait les choses. L'application de débogage ne s'affiche pas dans le gestionnaire IIS, donc je ne peux pas l'arrêter là. De même, iisreset ne l’attrape pas non plus.

La seule chose que j'ai trouvée jusqu'à présent est de changer une ligne de code, forçant ainsi le studio visuel à déclencher une génération, puis il tue le processus existant et recommence. Un peu ennuyeux si je veux juste y passer plusieurs fois.

Je ne considère pas cela comme une "réponse" appropriée, mais cela pourrait être une solution de contournement utile pour vous jusqu'à ce que quelqu'un arrive avec une vraie réponse.


0
2017-09-10 14:15



J'ai déjà contourné ce problème en faisant ceci:

  1. Exécuter un nettoyage sur ma solution (cliquez avec le bouton droit sur le nœud de la solution et cliquez sur nettoyer)
  2. Solution proche
  3. Fichier -> Quitter sur Visual Studio
  4. Si vous avez plusieurs instances de Visual Studio en cours d'exécution, quittez toutes les instances. Assurez-vous que "devenv.exe" n'est pas répertorié dans les processus du gestionnaire de tâches
  5. Supprimez le fichier d'options utilisateur (.suo), généralement dans le même répertoire que votre fichier de solution (.sln).
  6. Recycler le processus de travail IIS ou, si vous utilisez le serveur de développement, supprimer ce processus

Maintenant, ouvrez votre solution et lancez-la. (Gardez les doigts croisés :))


0
2017-09-09 06:26



Lorsque vous exécutez une application pour la première fois ou que vous démarrez une application, il existe un serveur de développement ASP.Net - Port [numéro de port] qui démarre.

Application_Start() s'exécute une fois au cours d'une application.

Si vous souhaitez que le point d'arrêt soit atteint, vous devez arrêter le port du serveur de développement ASP.Net et exécuter à nouveau votre application.


0
2018-04-08 05:27



Si [2092] w3wp.exe est un service que vous avez créé, essayez ceci: arrêter le service -> reconstruire le projet de service -> démarrer le service reconstruit -> essayer de déboguer


0
2017-10-01 09:16