web-dev-qa-db-fra.com

Étapes à suivre pour rechercher la cause de la section dupliquée Web.Config

Symptômes

  • Dans IIS 7 et dans le pool d'applications intégrées Dot Net 2.0: double-cliquez pour afficher une section Web.config dans une boîte de dialogue d'erreur comme celle-ci:

"There was an error while performing this operation.... Filename... web.config... Error: There is a duplicate..."

  • La navigation vers l’URL affiche: "Http 500.19" erreur de serveur interne .. Il y a un doublon ... "system.web.extensions/scripting/scriptResourceHandler" Section définie .... "

  • L'exécution de l'application à partir de VS 2008 ouvre la boîte de dialogue "Impossible de démarrer le débogage sur le serveur Web ...".

Infrastructure

  • Serveur Web: IIS 7 s'exécutant sous Windows 7 x64
  • ASP.Net MVC2
  • Pool d'applications: Dot Net 2.0 intégré
  • VS 2008

Les choses essayées

  • Vérifié pour voir si le problème se produisait dans d'autres répertoires d'application IIS sur le même ordinateur.
  • Supprimé et ré-ajouté l'application dans IIS.
  • Retour aux versions antérieures du fichier web.config.
  • Extrait une dernière version de travail du code source. Reconstruit l'application, a ajouté un nouveau répertoire d'applications et a essayé d'afficher le contenu web.config d'IIS.
  • A recherché des fichiers web.config pouvant contenir des sections en double dans:
    • Racine Inetpub.
    • "C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config"
    • Le sous-dossier "Vues" de l'application ASP.Net MVC.
  • Extrait le code source sur une autre machine de développement. Configurez IIS 7 dossier de l'application. Aucun problème avec Web.config.

Question

  • Si la raison de cette erreur est un autre fichier web.config, où devrais-je regarder?
  • Y a-t-il d'autres raisons pour ces symptômes?
40
Pauly

Ajoutez ceci à la liste de contrôle.

  • Assurez-vous que le fichier machine.config que vous cochez provient du même framework Dot Net que le pool d'applications dans lequel votre application est exécutée.

Dans mon cas, les pools d'applications par défaut ont été modifiés de Dot Net 2.0 à Dot Net 4.0. Cela a changé le root machine.config à la version 4.0. Cette version contient la section "scriptResourceHandler" ainsi que d'autres. Ainsi, l'avertissement de section en double.

35
Pauly

Si vous utilisez DotNetOpenAuth library sur votre site Web ET que votre site Web est un .NET 4.0 app, vous devez vous assurer que cette ligne est ET NON dans votre web.config.

<section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

J'ai installé DNOA en utilisant NuGet , et cette ligne a été automatiquement ajoutée à mon fichier web.config. J'ai donc dû l'enlever.

BTW personnes, si vous utilisez le serveur de développement Visual Studio intégré (hella-crappy) (aka Cassini) .. vous ne rencontrerez pas ce problème/problème. Ce problème ne se produit que lorsque vous déplacez votre code vers IIS7 Express ou complet IIS7.

Supprimez donc cette seule ligne et faites une danse joyeuse.

7
Pure.Krome

La solution consiste à changer votre machine.config.

  1. Déplacer les sections vers le fichier machine.config pour ASP.NET 2.0
  2. Ou supprimez les sections du fichier machine.config pour ASP.NET 4.0

Ici les gens de www.asp.net donnent une solution possible: http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes

Regarde :)

3
graffic

Dans IIS 7, modifiez le paramètre Pools d'applications pour le pool d'applications nommé "Classic .NET AppPool" en V2.0. Pour ce faire, cliquez avec le bouton droit de la souris sur Classic .NET AppPool et sélectionnez "Paramètres de base ...", puis rétablissez la version .NET Framework Version V2.0.xxxxx. Recyclez le pool d'applications et redémarrez le site Web. Tout devrait bien fonctionner.

3
Mike

Mon problème était assez différent et cela dépendra de la partie dupliquée.

Par exemple, la section loggingConfiguration en double semble être le résultat de l'application parent et enfant utilisant différentes versions de Microsoft Enterprise Library.

1
Rob Allen

Ce dépannage MS pourrait également aider: http://support.Microsoft.com/kb/942055

1
Victor Rodrigues

Il peut être intéressant d’ouvrir le fichier applicationHost.config:

C:\Windows\System32\inetsrv\config\applicationHost.config

Plus précisément, recherchez les balises <location> qui correspondent au nom du site (il peut y avoir plusieurs entrées) et voyez s’il existe des sections scriptResourceHandler en double qui y sont déclarées. Je vérifierais également le contenu de <location path=""> également.

0
Kev