151 votes

Problèmes d'application Web (erreurs web.config) HTTP 500.19 avec IIS7.5 et ASP.NET v2

Cela rend toute l'équipe folle. Il doit s'agir d'une simple erreur de configuration d'IIS ou de notre serveur Web, mais chaque fois que nous essayons d'exécuter une application Web ASP.NET sur IIS 7.5, nous obtenons l'erreur suivante...

Voici l'erreur dans son intégralité :

HTTP Error 500.19 - Internal Server Error

The requested page cannot be accessed because the related configuration  
data for the page is invalid.

`Detailed Error Information` 
Module              IIS Web Core
Notification        Unknown
Handler             Not yet determined
Error Code          0x8007000d
Config Error
Config File         \\?\E:\wwwroot\web.config
Requested URL       http://localhost:80/Default.aspx
Physical Path 
Logon Method        Not yet determined
Logon User          Not yet determined
Config Source
   -1: 
    0: 

La machine est en marche Windows Server 2008 R2 . Nous développons notre application Web en utilisant Visual Studio 2008 .

Selon Microsoft, le code 8007000d signifie qu'il y a une erreur de syntaxe dans notre web.config - sauf que le projet se construit et s'exécute bien localement. En regardant le web.config dans le Bloc-notes XML, aucune erreur de syntaxe n'apparaît non plus. Je suppose qu'il doit s'agir d'une mauvaise configuration de ma part... ?

Quelqu'un sait-il où je pourrais trouver des informations supplémentaires sur cette erreur ? Rien n'apparaît non plus dans l'EventViewer :(

Je ne sais pas ce qu'il serait utile de mentionner d'autre...

L'aide est très appréciée. Merci !

MISES À JOUR ! - WEB.CONFIG AFFICHÉ CI-DESSOUS

Ok, depuis que j'ai posté la question originale ci-dessus, j'ai retrouvé les lignes précises dans le fichier web.config qui causaient l'erreur.

Voici les lignes (elles apparaissent entre <System.webServer> tags)...

    <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </httpHandlers>

Note : Si je supprime les lignes entre le site <httpHandlers> Je reçois TOUJOURS l'erreur. Je dois littéralement supprimer <httpHandlers> (et les lignes intermédiaires) pour ne plus obtenir l'erreur ci-dessus.

Une fois que j'ai fait cela, j'obtiens un nouveau Une erreur 500.19, cependant. Heureusement, cette fois-ci, IIS m'indique réellement quelle partie du web.config pose problème...

    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </handlers>

En regardant ces lignes, il est clair que le problème a migré plus loin dans le même <system.webServer> à la balise <handlers> étiquette.

La nouvelle erreur est également plus explicite et se plaint spécifiquement qu'elle ne reconnaît pas l'attribut "validate" (comme on le voit sur la troisième ligne ci-dessus). En supprimant cet attribut, le système se plaint ensuite que la même ligne ne possède pas l'attribut "name" requis. L'ajout de cet attribut fait alors apparaître ASP.NET erreur...

Impossible de charger le fichier ou l'assemblage System.web.Extensions, Version=1.0.61025.0, Culture=neutre, PublicKeyToken=f2cb5667dc123a56' or l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

De toute évidence, je pense que ces nouvelles erreurs sont dues au fait que j'ai supprimé le fichier <httpHandlers> en premier lieu -- ils sont évidemment nécessaires à l'application -- donc la question demeure : Pourquoi ces balises provoquent-elles une erreur dans IIS en premier lieu ???

Dois-je installer quelque chose sur IIS pour qu'il fonctionne avec eux ?

Merci encore pour toute aide.

CONFIG.WEB

Voici les parties problématiques de notre web.Config ... J'espère que cela aidera quelqu'un à trouver notre problème !

<system.Web>

<!-- stuff cut out -->

    <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56" validate="false"/>
    </httpHandlers>
    <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </httpModules>
</system.web>

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
        <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </modules>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </handlers>
</system.webServer>

0 votes

Supprimez tous les commentaires dans le web.config . Ils commencent par <!-- et se terminent par --> .

0 votes

Woot. c'est quelque chose à faire avec <httpHandlers>

0 votes

Est-ce que ça fonctionne en mode intégré ? Si oui, essayez le mode classique.

274voto

JJMpls Points 1160

J'avais exactement les mêmes symptômes et mon problème était similaire à celui de Peter. J'installais un projet existant sur un nouveau serveur. Mon projet faisait référence au module IIS7 URL Rewriting, mais celui-ci n'avait pas encore été installé sur le nouveau serveur. Son installation a résolu mon problème.

Vous pouvez utiliser le Installateur de la plate-forme Web de Microsoft pour l'installer. Exécutez-le, sélectionnez Produits Dans le menu de gauche, sélectionnez Serveur et trouver Réécriture d'URL dans la liste et l'installer.

Ou vous pouvez le télécharger ici .

2 votes

> J'avais exactement les mêmes symptômes et mon problème était similaire à celui de Peter. J'installais un projet existant sur un nouveau serveur. Mon projet faisait référence au module IIS7 URL Rewriting, mais celui-ci n'avait pas encore été installé sur le nouveau serveur. L'installation de ce module a résolu mon problème. Merci, DJjeffJ. C'est réglé pour moi. Le module de réécriture d'URL sur le serveur de développement n'est pas installé.

1 votes

Ouaip... moi aussi, j'avais .net 3.5 donc ajax était déjà inclus, mais la réécriture ne l'est pas.

0 votes

+1 Cela a réglé mon problème aussi :) Et c'est un message d'erreur très mauvais en effet. Si seulement un peu d'enregistrement des erreurs avait été fait, mais il n'y a rien dans le journal des événements.

42voto

kerrydewhirst Points 219

Après avoir lutté avec cela pendant une journée sur une nouvelle machine, je suis tombé sur les liens suivants. Il me manquait les modules de réécriture. Cela a tout réglé.

http://forums.iis.net/t/1176834.aspx

http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/

2 votes

+1. Le web.config que j'ai récupéré de TFS avait <rewrite> mais je n'avais pas installé urlrewrite. J'ai commenté le <rewrite> et mon site s'est compilé et chargé tout de suite.

1 votes

Ça m'a pris une heure pour me rappeler que j'ai utilisé rewrite dans le site. J'aimerais que Microsoft ait un meilleur système de messages d'erreur du compilateur. Je résoudrais le problème en quelques minutes si je voyais la ligne exacte du web.config.

0 votes

Comment installer Url Rewrite dans Visual Studio pour IIS Express ?

41voto

Monk Points 9050

Aha ! J'ai battu ce problème ! Mon dieu, c'était une bête pour quelqu'un comme moi avec une expérience limitée de IIS. Je pensais vraiment que j'allais passer tout le week-end à le réparer.

Voici la solution pour tous ceux qui rencontrent ce problème.

Première chose dont il faut être conscient : Si vous espérez que c'est votre solution, assurez-vous que vous avez le même code d'erreur ( 0x8007000d ) et Config Source ( -1 : 0 : ). Dans le cas contraire, cette n'est pas votre solution.

La prochaine chose dont il faut être conscient : AJAX n'est pas correctement installé dans votre web.config !

Corrigez cela en suivant ce guide :
http://www.asp.net/AJAX/documentation/live/ConfiguringASPNETAJAX.aspx

Ensuite, installez le Extensions AJAX 1.0 sur votre serveur de production, à partir de ce lien :

http://www.asp.net/ajax/downloads/archive/
Mise à jour : Microsoft semble avoir supprimé la page ci-dessus :(

C'est ça !

2 votes

Merci ! Les extensions AJAX étaient le problème. J'ai commenté cette section puisque AJAX est maintenant intégré dans la version 3.5.

2 votes

On dirait que Microsoft a cassé le premier lien pour configurer ASP.NET AJAX.

2 votes

J'ai trouvé un miroir de l'ancien contenu. C'est tellement ennuyeux la façon dont la documentation de MS disparaît si fréquemment.

12voto

The Edge Points 21

J'ai eu le même problème que ci-dessus, même code d'erreur, etc. Je configure un site web local sous Windows 8. Après de nombreuses recherches, il s'est avéré que nous manquions d'URL rewrite. Après l'avoir téléchargé, tout est rentré dans l'ordre :)

0 votes

Vous m'avez fait gagner beaucoup de temps... Joli !

0 votes

Similaire, ce message d'erreur est complètement inutile !

8voto

Guillaume86 Points 7812

J'ajoute juste une réponse parce que j'ai passé des heures à essayer de résoudre les mêmes symptômes (mais un problème différent) :

Une cause possible est une dll x86 dans un pool d'applications 64 bits, la solution est d'activer les applications 32 bits dans les paramètres du pool d'applications.

0 votes

Cette réponse est également valable pour l'erreur 500.19 lors de la configuration d'Umbraco CMS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X