Impossible de démarrer le débogage sur le serveur web. Impossible de démarrer le débogage ASP.NET VS 2010, II7, Win 7 x64

92

J'utilise Visual Studio 2010 (en tant qu'administrateur), IIS 7 sur Windows 7 x64. Je suis capable d'exécuter le site Web ASP.NET dans IIS 7 sans débogage, mais lorsque j'appuie sur F5 pour le déboguer, j'obtiens:

Impossible de démarrer le débogage sur le serveur web. Impossible de démarrer le débogage ASP.NET. Plus d'informations peuvent être disponibles en démarrant le projet sans débogage.

Malheureusement, le lien d'aide ne m'aide pas beaucoup et mène à un sacré grand arbre de choses.

J'ai vérifié les éléments suivants:

  • Exigences de sécurité - Je ne me souviens pas avoir à faire quelque chose de spécial auparavant. Le processus de travail dans IIS7 est w3wp.exe. Il dit que s'il fonctionne en tant qu'ASPNET ou SERVICE RÉSEAU, je dois avoir des privilèges d'administrateur pour le déboguer. Comment savoir si je dois changer quelque chose ici?

  • Pages de propriétés du site Web> Options de démarrage> Débogueurs> ASP.NET est coché. Utiliser le serveur personnalisé est défini sur l'URL du site (qui fonctionne correctement sans débogage).

  • Le débogage est activé dans web.config.

  • L'application utilise ASP.NET 3.5 (je souhaite éventuellement passer à la version 4.0, mais j'ai une migration à gérer).

  • Pool d'applications: Classing .NET AppPool (également essayé DefaultAppPool).

Des idées où je peux vérifier ensuite?

Il ne devrait certainement pas être si difficile d'installer IIS, VS, de créer un site Web et de commencer à le tester?

Merci d'avance.

Dan C
la source
1
Juste pour être clair lorsque vous avez démarré Visual Studio, vous avez fait un clic droit dessus et choisissez l'option Exécuter en tant qu'administrateur?
Aaron Carlson
Avez-vous déjà vérifié ce lien? msdn.microsoft.com/en-us/library/dwesw3ee.aspx
Aaron Carlson
@Aaron, Oui, j'ai en fait VS configuré pour toujours fonctionner en tant qu'administrateur.
Dan C
@Aaron, j'ai explicitement parcouru cette page et ses enfants avant de publier ici et rien ne ressortait de ce que j'avais à faire. Mon système répond aux exigences et le débogage est activé pour le site. Je n'ai pas Windows Server 2003 donc aucune configuration IIS n'est effectuée là-bas. Je n'ai touché à aucun paramètre de sécurité car je ne sais pas si j'en ai besoin.
Dan C
Je ne sais pas si cela aide, mais j'ai essayé de créer un nouveau site Web de test ASP.NET 3.5 dans VS 2010, je l'ai ajouté à IIS 7 sans aucune configuration spéciale et j'ai pu le déboguer correctement. Quelque chose avec mon application principale avec la façon dont il est configuré dans VS, IIS ou peut-être même le système de fichiers. Je ne sais pas par où commencer la recherche.
Dan C

Réponses:

239

Essayez d'accéder à IIS et vérifiez que le pool d'applications que vous utilisez est démarré. Souvent, vous produirez une erreur qui fermera le pool d'applications. Il vous suffit de faire un clic droit et de démarrer et vous devriez être prêt à partir.

Trey Copeland
la source
Merci, j'aurais aimé trouver ce message vendredi! la piscine était arrêtée et je rencontre la première erreur
Christopher Cabezudo Rodriguez
Dans mon cas, j'ai dû autoriser ASP.NET v4.0.30319 dans les restrictions ISAPI et CGI
Adi le
15
+1 Mauvais nom d'utilisateur / mot de passe utilisé pour l'authentification du pool d'applications.
P.Brian.Mackey
3
Dans mon cas, la piscine était déjà démarrée, mais après l'avoir arrêtée et redémarrée, cela a fonctionné.
Serj Sagan
1
Merci. Cette solution a parfaitement fonctionné pour moi. J'ai dû redémarrer le pool d'applications en plus.
Dimanche
44

Il s'avère que le coupable était le module IIS Url Rewrite . J'avais défini une règle qui redirigeait les appels vers Default.aspx (qui était défini comme la page de démarrage du site Web ) vers la racine du site afin que je puisse avoir une URL d'accueil canonique. Cependant, apparemment, VS avait un problème avec cela et était confus. Ce problème ne s'est pas produit lorsque j'utilisais Helicon ISAPI_Rewrite, donc il ne m'est même pas venu à l'esprit de vérifier.

J'ai fini par créer un tout nouveau site Web à partir de zéro et porter petit à petit des projets / fichiers dans ma solution et reconstruire mon web.config jusqu'à ce que je le découvre! Eh bien, au moins maintenant, j'ai un site légèrement plus propre utilisant .NET 4.0 (jusqu'à présent, j'espère que je ne tomberai pas dans les murs) - mais quelle douleur!

Dan C
la source
6
Oui, mais vous devez vous assurer que le pool d'applications est en cours d'exécution, ainsi que votre portail.
Junior Mayhé
Sur cette note, mon problème était dans le web.config sous: <applicationInitialization remapManagedRequestsTo = "/ App / splash.html" doAppInitAfterRestart = "true" lockAttributes = ""> <add initializationPage = "App / index.html" hostName = " CSI "lockItem =" true "/> </applicationInitialization>. J'utilisais cela pour afficher un écran de démarrage pendant l'initialisation de l'application.
Nick
6
C'était tout pour moi. La règle de réécriture pour envoyer tout le trafic HTTP vers HTTPS était à l'origine de cette vilaine erreur. Je n'ai trouvé aucun moyen de maintenir la règle en place pour le débogage.
Kat
Je voulais juste ajouter que pour moi, c'était similaire, mais la réécriture SSL que nous avions signifiait que notre chemin de départ était localhost / appname, mais comme la redirection vous a envoyé vers localhost / appname, cela a provoqué une erreur de VS car il ne peut pas gérer la redirection. . Il nous a fallu une heure + pour trouver ce problème, car lors des tests dans IIS localement, tout fonctionnait parfaitement! ..
Liam Wheldon le
Même problème ici (module IIS Url Rewrite). Je le résous en déplaçant mes règles dans mon Web.Release.config. Voir weblogs.asp.net/srkirkland/… et stackoverflow.com/questions/11032868/… .
Swisher Sweet
42

Visual Studio, lors du démarrage, tentera (pour une raison quelconque) d'accéder à l'URL:

/debugattach.aspx

Si vous avez une règle de réécriture qui redirige (ou capture), disons, des .aspxfichiers, ailleurs, vous obtiendrez cette erreur. La solution est d'ajouter cette section au début de votre web.configde » <system.webServer>/<rewrite>/<rules>section:

<rule name="Ignore Default.aspx" enabled="true" stopProcessing="true">
    <match url="^debugattach\.aspx" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="None" />
</rule>

Cela garantira de capturer cette demande particulière, de ne rien faire et, surtout, d'arrêter l'exécution afin qu'aucune de vos autres règles ne soit exécutée. C'est une solution robuste, alors n'hésitez pas à la conserver dans votre fichier de configuration pour la production.

Kirk Woll
la source
1
cela n'a malheureusement pas fonctionné pour moi personnellement, mais je peux vérifier qu'il s'agit certainement d'une sorte de problème de réécriture, car j'ai commenté la section de réécriture de web.config et je peux exécuter sans problème.
Matt
Vous voudrez peut-être essayer la solution à partir d'ici: stackoverflow.com/a/30813200/375303 . Fonctionne comme un charme pour moi.
jerhewet
Visual Studio consignera les erreurs relatives à DebugAttach.aspx ici:% UserProfile% \ AppData \ Local \ Temp \ Visual Studio Web Debugger.log (si vous n'avez pas ce fichier - ou s'il s'agit d'un ancien fichier - alors votre problème n'est probablement pas lié à DebugAttach.aspx.)
Brandon S
Dans mon cas, la cause première est correcte, mais pas la résolution. Pour moi, cela a fonctionné: <location path="debugattach.aspx"> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough"> <clear /> </httpErrors> </system.webServer> </location>
Tasos K.
pour moi, le problème était à cause de "/debugattach.aspx", mais la solution était également de changer erroMode en "DetailedLocalOnly".
Nashe
30

Pour le bénéfice des autres, dans mon cas, j'avais configuré le pool d'applications pour utiliser mes informations d'identification Windows afin d'accéder à un partage de ressources réseau. Depuis le dernier débogage de la solution, j'avais réinitialisé mon mot de passe Windows. Mot de passe modifié stocké dans le pool d'applications et bada bing.

Breeno
la source
Merci pour cela, je n'utilisais même pas de partage réseau, mais cela fonctionnait très bien.
Marissa
21

Si ApplicationPool Identity est défini sur un compte personnalisé et que le mot de passe de l'ordinateur est modifié, vous devez mettre à jour votre mot de passe

Bonjour le monde
la source
Oui, j'ai eu un problème, j'ai essayé quelques réponses d'ici sans résultat, votre réponse est ce qui m'a vraiment aidé!
Vadzim Savenok
19

Pour mon scénario, il s'agissait de modifications de la section httpErrors dans web.config, en la définissant comme ceci:

<httpErrors mode="Custom"> 

a provoqué le problème «Impossible de démarrer le débogage sur le serveur Web». Le remettre à la valeur précédente de "DétailléLocalOnly" a résolu le problème. En creusant un peu plus profondément, j'ai découvert que c'était en fait juste le paramètre d'erreur 401 qui causait ceci:

<httpErrors mode="Custom"> 
    <error statusCode="401" prefixLanguageFilePath="" path="/masterpages/500.html" responseMode="ExecuteURL" />
<httpErrors mode="Custom"> 

En commentant la ligne d'erreur 401, j'ai également résolu le problème, car je peux ensuite maintenir la gestion des erreurs personnalisée et commencer le débogage.

Je n'ai toujours aucune idée de pourquoi cela se produit.

Fjarskiptagervitungl
la source
Même cause pour moi, j'ai été témoin de 401 réponses dans mes journaux en essayant de démarrer le débogage, et la désactivation de ma gestion des erreurs par défaut a résolu le problème "vs ne peut pas déboguer le site" pour moi. Je ne comprends pas pourquoi 401 se produit même sur ma page de connexion lorsque et seulement lors du démarrage du débogage avec vs, alors que seuls l'accès anonyme et l'authentification par formulaire Web. sont activés.
Frédéric
C'était le correctif pour moi aussi, seulement j'ai un chemin d'erreur par défaut défini au lieu d'en définir explicitement un pour 401.
tuespetre
C'est ce qui a fonctionné pour moi (je viens de supprimer temporairement toute la section httperrors). Les choses que j'ai essayées précédemment et qui ne fonctionnaient pas étaient le redémarrage du pool d'applications et la suppression des règles de réécriture d'URL.
Nicholas West du
C'est ce qui a fonctionné pour moi. alors j'ai changé mon erreur personnalisée comme @Pablo Romeo écrit dans cette réponse: stackoverflow.com/a/13905859/4489664
Bondaryuk Vladimir
2
Changer erroMode en "DetailedLocalOnly" a également été résolu pour moi. Le débogueur essayait d'ouvrir "/DebugAttach.aspx", ce qui l'a amené à accéder à la page d'erreur personnalisée qu'il ne pouvait pas exécuter au moment donné.
Nashe
13

Vérifiez le pool d'applications. s'il est arrêté. redémarrez-le.

user3206598
la source
4
C'est la même chose que la réponse numéro 1 qui a été proposée un mois auparavant.
mac10688
OK c'est ça, mais pourquoi ça s'arrête à chaque fois?
Fernando Torres
Mon pool d'applications fonctionnait sur un utilisateur dont le mot de passe avait été modifié.
Anderson
11

J'ai eu le même problème en essayant de déboguer un module DNN (Dot Net Nuke). Il s'est avéré que vous devez avoir la compilation debug = "true":

<compilation debug="true" strict="false" targetFramework="4.0"> 

dans votre web.config. Par défaut, il est faux dans DNN. Source originale ici: http://www.dnnsoftware.com/forums/forumid/111/postid/189880/scope/posts

Zar Shardan
la source
Je vous remercie!! Je me suis arraché les cheveux toute la journée et la solution était si simple. Si seulement VS pouvait donner un message d'erreur significatif!
colincameron
8

J'ai exactement le même problème après avoir implémenté le module de réécriture.

Si je supprime les entrées de réécriture de mon fichier web.config, le débogage fonctionne parfaitement.

Pour contourner cela, je viens de commenter les balises de réécriture lors du débogage, comme ceci ...

<rewrite>
    <rules>
        <rule name="LowerCaseRule_1" stopProcessing="true">
            <match url="[A-Z]" ignoreCase="false" />
            <action type="Redirect" url="{ToLower:{URL}}" />
        </rule>
        <rule name="RedirectDefault.aspx_1" stopProcessing="true">
            <match url="(.*)default.aspx" />
            <action type="Redirect" url="{R:1}" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

Je supprime ensuite les commentaires après le débogage.

Doit être un bogue dans Visual Studio 2010.

geofili
la source
1
Certes, c'est une solution de contournement, mais médiocre car il est vraiment facile d'oublier de supprimer des commentaires comme celui-ci avant une validation ou une publication du site.
Jon Adams
1
Vous pouvez déplacer ces lignes dans le fichier de configuration web.config.release, donc lorsque vous publiez, ce sera uniquement dans la version publiée. C'est ce que j'ai fait.
shalke
Peut-être que le simple fait d'exclure /debugattach.aspx le fait. Regardez le commentaire de Peter Monks
Daniel Fisher lennybacon
6

J'ai eu la même erreur depuis que le pool d'applications a été arrêté dans IIS. Après le démarrage du pool d'applications, le problème a été résolu.

Ovini
la source
J'ai aussi résolu mon problème! J'ai découvert que mon DefaultAppPool s'est arrêté. Merci d'avoir partagé ça. Je ne comprends pas pourquoi ça s'est arrêté.
Jobert Enamno
5

Voici ce que j'ai fait pour effacer l'erreur que vous avez notée. Localisez le dossier Web de l'application dans le système de fichiers, allez dans Propriétés => Sécurité cliquez sur le bouton Avancé puis cliquez sur l' onglet Propriétaire , cliquez sur le bouton Modifier et changez le propriétaire (avec les autorisations appropriées) du dossier et cochez la case " Repalce propriétaire sur les sous-conteneurs et les objets ». Cliquez sur « Appliquer » et j'étais en affaires (capable de déboguer).

J'espère que cela fonctionne pour quelqu'un d'autre.

Moe Howard
la source
2
Changer le propriétaire à qui?
dumbledad
5

Je viens de résoudre ce problème pour ma solution unique qui avait cela. Deux des projets de la solution ont été définis en tant que sites dans IIS. Je suis entré et j'ai activé l'emprunt d'identité ASP.Net sous Authentification pour les deux projets ... et VIOLA! FINALEMENT, plus de cette erreur ennuyeuse!

Todd Vance
la source
3

J'obtenais le même message d'erreur dans VS 2012, mais je ne fonctionnais pas en tant qu'administrateur. Lorsque j'ai exécuté l'application en tant qu'administrateur, j'ai reçu un message différent et légèrement plus utile (que j'ai pu comprendre). HTH

Tom Gerken
la source
3

Si le pool d'applications a du mal à redémarrer ou ne veut tout simplement pas redémarrer, vérifiez si Windows a effectué une mise à jour récente sur ASP.NET v4.0 ou un autre pool d'applications. C'est ce qui s'est passé dans mon cas. J'ai simplement redémarré mon ordinateur, puis redémarré le pool d'applications ASP.NET v4.0 et tout fonctionnait à nouveau!

Chewbacca17
la source
2

Dan,

En plus des suggestions d'Aaron, essayez ce qui suit

  • Vérifiez que l'authentification Windows intégrée est sélectionnée dans votre site Web IIS
  • Pouvez-vous déboguer en utilisant Cassini au lieu d'IIS?
Keefu
la source
J'ai suivi les étapes ici pour activer l'authentification Windows intégrée: msdn.microsoft.com/en-us/library/x8a5axew.aspx mais j'ai toujours la même erreur (le gestionnaire iis affiche un avertissement que je ne peux pas utiliser à la fois l'authentification par défi et par connexion - mon site utilise l'authentification par formulaire). Je peux déboguer le site en utilisant le serveur Web intégré à VS 2010, mais il manque des fonctionnalités.
Dan C
Avez-vous essayé de créer un nouveau site Web dans IIS et d'y déployer votre code? Par curiosité, quelles fonctionnalités manqueriez-vous si vous déboguiez dans Cassini? À ma connaissance, Cassini prend en charge l'authentification par formulaire.
Keefu
Qu'entendez-vous par «créer un nouveau site Web dans IIS»? Il s'agit d'un nouvel ordinateur avec un nouveau système d'exploitation, VS2010, IIS installe. J'ai créé une nouvelle application dans IIS et l'ai dirigée vers le dossier du site Web réel (récupéré à partir d'une sauvegarde). La réécriture d'URL ne semble pas fonctionner pleinement dans Cassini. Nous utilisons également un module personnalisé pour basculer automatiquement entre http et https ( codeproject.com/KB/web-security/WebPageSecurity_v2.aspx ).
Dan C
Cassini ne prend pas en charge le module Url Rewrite 2
citronas
2

Eu le même problème avec Windows 10 lorsqu'il est activé toutes les fonctionnalités de Windows IIS. Je suis passé à Windows 8.1 et j'ai de nouveau un problème. La racine était dans le nom du site Web " http: //MySite.local " (sans rapport avec la version du système d'exploitation).

Et la solution est simple

  • Modifier le fichier d'hôtes dans %SystemRoot%\System32\drivers\etc\

  • Ajouter une ligne avec une liaison IP: 127.0.0.1 MySite.local

Artru
la source
C'était un joyau pour moi, j'avais complètement oublié de configurer mon fichier hôte et je me demandais pourquoi mes apis ne fonctionnaient pas lorsque je suis passé à iis local (pour https). VS fonctionnait avec un seul site en cours d'exécution, mais une fois que j'en ai ajouté un second, je ne pouvais plus déboguer, cela l'a résolu.
CDerrig
1

J'ai eu cette erreur survenue aujourd'hui en raison d'un défaut de code qui a été renvoyé un très grand nombre de fois, provoquant l'inondation d'IIS avec des demandes. Cela a essentiellement verrouillé IIS et donc, lorsque j'ai essayé de déboguer, il a expiré en essayant de démarrer le débogueur. J'ai simplement redémarré IIS, ce qui a pris quelques minutes, et cela a résolu le problème.

Je souhaite bien que cette erreur soit moins générique, il semble qu'il existe plusieurs façons de la produire.

ammills01
la source
1

J'ai eu le même problème dans Visual Studio 2012 et 2013 sous Windows 8.1. Pour moi, le correctif consistait à ajouter l'authentification Windows à IIS en utilisant `` Activer ou désactiver les fonctionnalités Windows ''

Activer ou désactiver la capture d'écran des fonctionnalités Windows

dumbledad
la source
1

Assurez-vous que le pool d'applications de votre site utilise la bonne version du framework . J'ai eu l'erreur «Impossible de démarrer le débogage» sur un site ASP.Net 2005. Il n'utilisait pas correctement DefaultAppPool sur Windows 7 (qui, je crois, utilisait .Net Framework 4). J'ai créé un nouveau pool d'applications basé sur .Net Framework 2 et l'ai affecté au site Web du problème. Après cela, le débogage a bien fonctionné.

DéveloppeurDan
la source
1

Vérifiez si votre site Web sur IIS ne s'arrête pas.

Je l'ai corrigé, j'ai mis mon site Web en marche. :RÉ

AFetter
la source
1

J'ai eu ce problème et j'ai finalement réalisé que je ASP.net n'est pas enregistré correctement avec IIS. Cela peut se produire lorsque le serveur IIS est installé avant Visual Studio. Pour résoudre ce problème, utilisez la commande aspnet_regiis -i Pour plus d'informations, consultez le lien

karpanai
la source
1

avait le même problème. Si vous avez un certificat SSL installé sur IIS et si vous essayez de le déboguer à partir de Visual Studio, vous devez configurer votre application sur IIS pour ignorer le certificat.

akd
la source
1

J'ai eu le même problème et j'ai constaté qu'il était dû au fait que j'avais un caractère tapé par erreur dans mon Web.configaprès la balise de fin. Mon Web.configressemblait à ce droit à la fin: </section>h. Le "h" était un caractère supplémentaire après la balise de fermeture.

Lavanya
la source
0

supprimez sting comme ceci: targetFramework = "4.0" dans web.config ou changez AppPool en version appropriée du framework.

Slava
la source
0

La désinstallation de l'extension IIS UrlScan a résolu le problème pour moi.

Thomas
la source
0

J'avais rencontré le même problème, mais c'était sur le propre serveur de développement Web de Visual studios au lieu d'IIS. cela fera gagner un temps précieux à quelqu'un.

user3169006
la source
0

J'ai eu le même problème. Toutes les réponses ci-dessus n'ont pas fonctionné pour moi. La solution consistait à supprimer manuellement le dossier bin et obj.

user1949096
la source
0

J'ai également trouvé ce problème, mais il était très similaire à ce que @Kirk a expliqué et à la réécriture d'URL.

Dans mon cas, quelqu'un avait archivé cette modification dans le fichier web.config pour un projet MVC:

<system.webServer>
    <security>
        <requestFiltering>
            <fileExtensions>
                <add fileExtension=".aspx" allowed="false" />
            </fileExtensions>
        </requestFiltering>
    </security>
</system.webServer>

Étant donné que les extensions de fichier .aspx n'étaient pas autorisées sur le serveur Web, l' /debugattach.aspxURL a été refusée, empêchant le débogueur de s'exécuter. Une fois que j'ai supprimé cette configuration, cela a fonctionné à nouveau.

Peter Monks
la source
0

J'ai eu le même problème lorsque j'ai créé une application dans Visual Studio, puis dans les propriétés, j'ai créé un répertoire virtuel à utiliser avec IIS local. Si quelqu'un a cette erreur, c'est parce que VS crée une application sous le mauvais AppPool, c'est-à-dire sous AppPool qui ne répond pas à vos besoins.
Si tel est le cas, allez dans IIS Manager, sélectionnez App, Go to Basic settings et changez AppPool for App et vous êtes prêt à partir.

saule
la source
0

J'ai eu cette même erreur récemment et dans mon cas, il s'est avéré qu'il y avait des types MIME en double. J'en avais récemment ajouté deux qui ne figuraient pas initialement dans la liste. IIS m'a laissé les ajouter et ce n'est que lorsque j'ai décidé de vérifier à nouveau les types MIME du site dans le cadre de mon processus de diagnostic que j'ai également eu une erreur dans IIS. Il faisait référence aux doublons dans web.config. Une fois que je suis retourné dans le fichier web.config, j'ai remarqué qu'une nouvelle section appelée avait été ajoutée, qui incluait les deux types MIME récemment ajoutés. Supprimé cette section et la vie est belle à nouveau! En espérant que cela peut aider d'autres personnes qui n'ont pas réussi à résoudre le problème avec l'une des autres suggestions.

Mike
la source