40 votes

Des mesures pour Enquêter sur la Cause du Web.Config Double Section

Les symptômes

  • Dans IIS 7 et Dot Net 2.0 Intégrée d'application de la piscine: un double-clic pour afficher tout web.section de configuration des résultats dans le suivant de la boîte de dialogue d'erreur.

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

  • Accédant à l'URL s'affiche: "Http 500.19" erreur interne du serveur.. Il y a un doublon... 'système.web.extensions/scripts/scriptResourceHandler' l'article défini...."

  • L'exécution de l'application à partir de VS 2008 une "Impossible de démarrer le débogage sur le serveur web..." boîte de dialogue est affichée.

L'Infrastructure

  • Serveur Web: IIS 7 sur Windows 7 x64
  • ASP.Net MVC2
  • Application de la piscine: Dot Net 2.0 intégré
  • VS 2008

Les Choses Essayé

  • Vérifié pour voir si le problème a été commis dans d'autres IIS application des répertoires sur la même machine.
  • Supprimé et re-ajout de l'application dans IIS.
  • Revenue pour les versions antérieures du web.fichier de configuration.
  • Vérifié la dernière version du code source. Reconstruit à l'application, ajout d'un nouveau répertoire app pour elle et a essayé de vue web.config contenu de IIS.
  • Regardé pour le web.des fichiers de configuration qui pourrait avoir de doublons dans les sections:
    • Inetpub racine.
    • "C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config"
    • Les "points de Vue" sous-dossier de l'ASP.Net MVC app.
  • Extrait du code source à une autre machine de dev. Installation de IIS 7 dossier app. Pas de problème avec le Web.config.

Question

  • Si la raison de cette erreur est un autre site web.fichier de configuration où dois-je chercher?
  • Existe-il d'autres raisons pour ces symptômes?

35voto

pauly Points 932

Ajouter à la liste de contrôle.

  • Assurez-vous que la machine.config vous pouvez le vérifier est de la même Dot Net framework que le pool d'applications de votre application est en cours d'exécution en vertu de l'.

Dans mon cas, la valeur par défaut de l'application des piscines a été modifié à partir de Dot Net 2.0 pour Dot Net 4.0. Cela a changé la racine de la machine.config de la version 4.0. Cette version contient le "scriptResourceHandler" de la section ainsi que d'autres. Ainsi, le double de la section d'avertissement.

7voto

Pure.Krome Points 28473

Si vous utilisez DotNetOpenAuth bibliothèque dans votre site web ET votre site est une .NET 4.0 app, alors vous devez vous assurer que cette ligne n'est PAS 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 à l'aide de NuGet, et il est automatiquement ajouté cette ligne dans mon web.fichier de configuration. Donc j'ai dû l'enlever.

BTW les gens, si vous en utilisant l' (hella-merde) serveur de développement visual studio (aka Cassini) .. vous n'obtiendrez pas ce problème. C'est seulement quand u déplacer votre code sur IIS7 express ou complet IIS7 sera ce problème se produit.

Afin de supprimer cette seule ligne et ensuite un plaisir de la danse.

3voto

Mike Points 31

Dans IIS 7 modifier les Pools d'Applications de réglage pour le pool d'applications nommé "Classique .NET pool d'applications" à la V2.0. Cela, en cliquant sur le Classique .NET pool d'applications et en sélectionnant "Réglages de Base..." puis réinitialisez l' .NET Framework Version V2.0.xxxxx. Recycler le pool d'application et redémarrez le site web et il devrait fonctionner correctement.

3voto

graffic Points 588

La solution est de changer de machine.config.

  1. Déplacer les sections de la machine.config pour ASP.NET 2.0
  2. Ou Supprimer les sections de la machine.config pour ASP.NET 4.0

Ici, les gens de www.asp.net donner une possible correction: http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes

Prendre un coup d'oeil :)

1voto

Victor Rodrigues Points 3468

Ce MS dépannage peut aider aussi: http://support.microsoft.com/kb/942055

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