web-dev-qa-db-fra.com

Erreur de configuration: cette section de configuration ne peut pas être utilisée sur ce chemin

J'ai rencontré une erreur lors du déploiement d'un site sur un serveur. Lorsque j'essaie de charger la page d'accueil ou d'accéder à l'authentification sur le nouveau site dans IIS, le message d'erreur suivant s'affiche:

Erreur de configuration: cette section de configuration ne peut pas être utilisée sur ce chemin . Cela se produit lorsque la section est verrouillée au niveau parent. Le verrouillage est soit par défaut (overrideModeDefault = "Deny"), soit défini explicitement par un balise d'emplacement avec overrideMode = "Deny" ou l'héritage allowOverride = "false".

Plus de détails peuvent être trouvés ici, dans Scénario 7 correspond à mon code d'erreur hexadécimal.

La solution indiquée sur le site lié ci-dessus consiste à définir Allow pour overrideModeDefault dans la section mentionnée dans mon erreur, dans le fichier applicationHost.config. Dans mon cas, sous Security dans system.webServer. Mais si je regarde le applicationHost.config sur mon ordinateur local, où le site est déjà correctement déployé, cette section est définie sur Deny.

Si cette solution est correcte, comment mon instance locale fonctionne-t-elle correctement avec le même web.config? Selon mon applicationHost.config, cette section devrait être verrouillée, mais ce n'est pas le cas. Je préférerais ne pas modifier le fichier applicationHost.config, car de nombreux autres sites sont exécutés sur ce serveur. Y a-t-il une autre solution?

1571
Alex

J'ai eu le même problème. Je ne me rappelle pas où je l'ai trouvé sur le Web, mais voici ce que j'ai fait:

  • Cliquez sur le bouton "Démarrer"
  • dans le champ de recherche, entrez "Activer ou désactiver les fonctionnalités de Windows"
  • dans la fenêtre des fonctionnalités, cliquez sur "Services Internet"
  • Cliquez sur "Services World Wide Web"
  • Cliquez sur "Fonctionnalités de développement d'applications"
  • Cochez (activez) les fonctionnalités. J'ai vérifié tout sauf CGI.

au fait, j'utilise Windows 7.

2970
chuck97224

Vous pouvez également utiliser le Gestionnaire IIS pour modifier ces paramètres.

Care of this En savoir IIS article :

Utilisation de la délégation Feature à la racine de IIS:

Feature delegation icon in IIS Manager

Vous pouvez ensuite contrôler chacune des autorisations de lecture/écriture au niveau de l'ordinateur, ce qui vous donnera sinon les erreurs overrideMode = "Deny".

Example use of Feature Delegation

320
Overflew

Pour Windows Server 2012 et IIS 8 , la procédure est similaire.

Les Web Server (IIS) et Application Server doivent être installés et vous devez également avoir la Web Server (IIS) Support optionnelle sous Application Server.

Windows Server 2012 and IIS 8 Requirements for MVC

169
ken

Naviguez jusqu'à «C:\Windows\System32\inetsrv\config» (vous aurez besoin des droits d'administrateur ici) Ouvrez applicationHost.config.

Note: dans IISExpress et Visual Studio 2015, le fichier applicationHost.config est stocké dans $(solutionDir).vs\config\applicationhost.config

Recherchez la section figurant dans la partie «source de configuration» de la page du message d'erreur. Pour moi, il s’agissait généralement de «modules» ou de «gestionnaires»

Remplacez l'attribut overrideModeDefault par Allow

Ainsi, toute la ligne ressemble maintenant à:

<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />

Après avoir enregistré le fichier, la page s'est chargée correctement dans mon navigateur.

Avertissement:Modification de applicationHost.config sur Windows 64 bits

130
Nime Cloud

Vous devez déverrouiller les gestionnaires. Cela peut être fait en utilisant la commande cmd suivante:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers

Peut-être une autre information pour les personnes qui reçoivent cette erreur sur IIS 8, dans mon cas était sur la plate-forme Microsoft Server 2012. J'avais passé quelques heures à lutter contre d'autres erreurs qui avaient éclaté après l'exécution de appcmd. En fin de compte, j'ai pu résoudre ce problème en supprimant Web Server Role et en l'installant à nouveau. 

62
Gregor Primar

For Win 10 (fonctionnera probablement aussi sur d'autres versions de Windows.)

1. Ouvrir "Activer ou désactiver les fonctionnalités de Windows" par: WinKey + R => "optionalfeatures" => OK

 enter image description here

  1. Activez ces fonctionnalités sous "Fonctionnalités de développement d'applications"

 enter image description here

32
Aviram Fireberger

Selon ma réponse à cette question similaire ;

Essayez de déverrouiller les paramètres de configuration IIS appropriés au niveau du serveur, comme suit:

  1. Ouvrir IIS Manager
  2. Sélectionnez le serveur dans le volet Connexions
  3. Ouvrez Éditeur de configuration dans le volet principal
  4. Dans la liste déroulante Sections, sélectionnez la section à déverrouiller, par exemple. system.webServer> defaultPath
  5. Cliquez sur Unlock Attribute dans le volet de droite.
  6. Répétez l'opération pour tout autre paramètre que vous devez déverrouiller.
  7. Redémarrer IIS (facultatif) - Sélectionnez le serveur dans le volet Conncetions, cliquez sur Redémarrer dans le volet Actions.
29
Chris

J'avais besoin d'exécuter ces deux commandes à partir d'une invite de commande élevée:

%windir%/system32/inetsrv/appcmd unlock config /section:anonymousAuthentication

%windir%/system32/inetsrv/appcmd unlock config -section:windowsAuthentication
27
Benji

Sur Windows Server 2012 avec IIS 8, j'ai résolu ce problème en activant la fonctionnalité ASP.NET 4.5:

enter image description here

puis en suivant la réponse de Ken .

25
Kimi

La meilleure option est de changer le Application Settings du Custom Site Delegation
Ouvrez IIS et à la racine, sélectionnez Feature Delegation, puis sélectionnez Application Settings et dans la barre latérale droite, sélectionnez Read/Write Step #1  Step #2

18
Dr TJ

Cela a fait le tour pour moi, pour IIS 8 Windows Server 2012 R2 

Aller à "Activer les fonctionnalités"

Ensuite, allez à tous les paramètres par défaut, Suivant, Suivant, Suivant, etc. 

Ensuite, sélectionnez comme indiqué ci-dessous,  enter image description here

Puis réinitialisez IIS (facultatif) mais faites-le de façon plus sûre. 

 enter image description here

C'est une solution supplémentaire car c'est un problème générique, tout le monde a un problème différent et donc une solution différente. À votre santé!

14
Usman Younas

Pour résoudre ce problème, ouvrez le fichier IIS Express applicationhost.config. Ce fichier est stocké dans C:\Utilisateurs [votre nom d'utilisateur]\Documents\IISExpress\config\applicationhost.config

Mise à jour pour VS2015 +: l'emplacement du fichier de configuration est $ (solutionDir) .vs\config\applicationhost.config

Cherchez les lignes suivantes

<section name="windowsAuthentication" overrideModeDefault="Deny" />
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
<add name="WindowsAuthenticationModule" lockItem="true" />
<add name="AnonymousAuthenticationModule" lockItem="true" />

Modifiez ces lignes en

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />

Enregistrez-le et actualisez Asp.net Page.

13
Rao Adnan

Il semble que, avec IIS Express et VS 2015, il existe une copie du fichier applicationHost.config dans $ (solutionDir) .vs\config\applicationhost.config. Vous devrez donc y apporter des modifications. Voir ce lien: http://digitaldrummerj.me/iis-express-windows-authentication/

Assurez-vous que ces lignes sont modifiées comme suit:

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />
12
PBMe_HikeIt

Dans mon cas, c’est que sur le serveur n’était pas activé "Activation HTTP" sous Fonctionnalités .NET Framework. Donc, pour Windows Server 2012, la solution qui a fonctionné pour moi était la suivante:

Gestionnaire de serveur -> Ajouter des rôles et des fonctionnalités -> Fonctionnalités -> assurez-vous que "Activation HTTP" est cochée dans le .NET Framework de la version que vous souhaitez utiliser

11
Pavel Nemec

Dans notre cas sur IIS 8, nous avons constaté que l'erreur avait été générée lors d'une tentative d'affichage de l'authentification "pour un site, lorsque:

  1. La délégation de fonctions du serveur marquée comme "Authentification - Windows" = "Lecture seule"
  2. Le site avait un fichier web.config qui faisait explicitement référence à l’authentification Windows; par exemple., 

Marquage de la fonctionnalité de délégation du site "Authentication - Windows" = "Lecture/écriture", l'erreur a disparu. Il semble que, avec la fonctionnalité marquée "Lecture seule", le script web.config ne soit pas autorisé à y faire référence du tout, même à le désactiver, car cela constitue apparemment une écriture.

 site web.config  IIS Manager - Server Feature Delegation

10
IronRod

La façon Powershell d'activer les fonctionnalités (Windows Server 2012 +) - ajustez au besoin:

Install-WindowsFeature NET-Framework-Core
Install-WindowsFeature Web-Server -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-45-ASPNET -IncludeAllSubFeature
Install-WindowsFeature Application-Server -IncludeAllSubFeature
Install-WindowsFeature MSMQ -IncludeAllSubFeature
Install-WindowsFeature WAS -IncludeAllSubFeature
8
Chris S

J'avais besoin de changer les paramètres SSL sur un sous-dossier quand j'ai reçu ce beau message. Dans mon cas, l'action suivante m'a aidé.

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

Et changé la valeur de overrideModeDefault = "Deny" à "Allow"

<sectionGroup name="system.webServer">
 ...
    <sectionGroup name="security">
        <section name="access" overrideModeDefault="Allow" />
    </sectionGroup>
6
Stefan Michev

Dans mon cas, c'était autre chose.

Lorsque j'ai chargé la solution dans une nouvelle version de Visual Studio, VS a apparemment créé un nouveau fichier applicationhost.config spécifique au projet:

MySolutionDir\.vs\config\applicationhost.config

Il a commencé à utiliser les paramètres de la nouvelle configuration au lieu de mes paramètres globaux IIS Express déjà personnalisés . (\ Users \% USER%\Documents\IISExpress\config\applicationhost.config)

Dans mon cas, c'était le paramètre qui devait être défini. Bien sûr, cela pourrait être autre chose pour vous:

<section name="ipSecurity" overrideModeDefault="Allow" />
4
Andrew

Dans mon cas, j'ai eu cette erreur parce que je travaillais sur le mauvais fichier de configuration.

Je faisais ceci:

Configuration config = serverManager.GetWebConfiguration(websiteName);
ConfigurationSection serverRuntimeSection = config.GetSection("system.webServer/serverRuntime");
serverRuntimeSection["alternateHostName"] = hostname;

au lieu du code correct:

Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection serverRuntimeSection = configApp.GetSection("system.webServer/serverRuntime", websiteName);
serverRuntimeSection["alternateHostName"] = hostname;

en d'autres termes, j'essayais d'utiliser le fichier web.config du site Web au lieu du fichier global C:\Windows\System32\inetsrv\config\applicationHost.config, qui comporte une section (ou peut avoir une section) pour le site Web. Le paramètre que j'essayais de modifier n'existe que dans le fichier applicationHost.config.

4
Mark R

L'erreur indique que la section de configuration est verrouillée au niveau parent . Ce ne sera donc pas directement un fichier de configuration qui résoudra le problème. Cliquez sur le lien ci-dessous pour parcourir la hiérarchie des fichiers et l'héritage dans IIS.

https://msdn.Microsoft.com/en-us/library/ms178685.aspx

Vous devez donc vérifier les paramètres de configuration de l'application dans l'ordre indiqué ci-dessous.

  1. ApplicationHost.config dans C: windows\system32\inetsrv\config. Définissez l'attribut overrideModeDefault sur Allow.
  2. ApplicationName.config ou web.config dans le répertoire des applications 
  3. Web.config dans le répertoire racine.
  4. Web.config dans le site Web spécifique (mon problème a été trouvé à cet endroit).
  5. Web.config du site Web racine (configuration du serveur)
  6. machine.config de la machine (les propriétés web.config et machine.config de Root peuvent être trouvées à l'emplacement - racine système\MicrosoftNET\Framework\versionNumber\CONFIG\Machine.config)

Examinez attentivement toutes ces configurations dans l’ordre de 1 à 6 et vous devriez le trouver.

3
Avil Mascarenhas

Pouvez-vous essayer ceci:

Accédez au chemin de l'application où l'erreur se produit, cliquez avec le bouton droit de la souris. 

Propriétés-> onglet Sécurité

Dans ce cas, modifiez les autorisations et cochez la case en lecture et en écriture. Ensuite, cela fonctionnera sans erreur, espérons-le.

3
user5891257

A reçu ce même problème après avoir installé IIS 7 sur Vista Home Premium. Pour corriger l'erreur, j'ai modifié les valeurs suivantes situées dans le fichier applicationHost.config situé dans Windows\system32\inetsrv.

Changer toutes les valeurs suivantes situées dans la section -> 

<div mce_keep="true"><section name="handlers" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>
<div mce_keep="true"><section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>
2
Bhavesh

Pour Windows Server 2008 et IIS 7, la procédure est similaire. veuillez vous référer à ceci: http://msdn.Microsoft.com/en-us/library/vstudio/bb763178(v=vs.100).aspx

dans le service de rôle Add, vous verrez "Fonctionnalités de développement d'applications"

Cochez (activez) les fonctionnalités. J'ai tout vérifié.

2

J'ai eu un problème où je mettais dans les valeurs override = "Allow" (déjà mentionnées ici) ...... mais sur un système x64 bits ....... mon 32 bloc-notes ++ était un enregistrement fantôme. Passer à Notepad (une application 64 bits sur un système d'exploitation x64 bits) m'a permis de sauvegarder les paramètres.

Voir:

http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/

Le texte pertinent:

L’un des problèmes que j’ai rencontrés a nécessité de visualiser et éventuellement d’éditer applicationHost.config. Ce fichier se trouve dans% SystemRoot%\System32\inetsrv\config. Cela semble assez simple. J'ai été capable de le trouver facilement à partir de la ligne de commande, mais lorsque je suis allé le charger dans mon éditeur favori (Notepad ++), j'ai eu une erreur de fichier non trouvé. Il s'avère que le dossier System32 est redirigé vers SysWOW64 pour les applications 32 bits. Il semble n'y avoir aucun moyen d'afficher le dossier System32 à l'aide d'une application 32 bits. Go figure ..__ Heureusement, les versions 64 bits de Windows sont livrées avec une version 64 bits de Notepad. Autant que je n'aime pas ça, au moins ça marche.

1
granadaCoder

Ce qui suit a fonctionné pour moi:

Aller aux propriétés du projet. Onglet Web. Définissez sur Local IIS et définissez une page spécifique.

J'ai Windows 7 et Visual Studio 2013.

0
user3900346

Dans mon cas, je rencontrais cette erreur lorsque je tentais de mettre à jour les paramètres d'authentification dans IIS également en plus de la navigation. J'ai pu supprimer cette erreur en supprimant le paramètre d'authentification du fichier web.config lui-même. Supprimer une section de configuration problématique peut être moins invasif et préférable dans certains cas que de trop modifier les rôles et fonctionnalités du serveur:

Section supprimée:

    <security>
        <authentication>
            <windowsAuthentication enabled="true" />
        </authentication>
    </security>
0
Brandon Hawbaker

j'ai résolu ce problème 

allez dans cmd et exécutez aspnet_regiis -i

j'espère que cela aidera quelqu'un.

0
Dipal Kothari

L'ajout de la clé suivante dans le registre a résolu mon problème:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ASP.NET_64\Performance

Lorsque j'ai essayé ces étapes, j'ai continué à avoir des erreurs:

  1. Recherchez "Activer ou désactiver les fonctionnalités de Windows"
  2. Cochez "Internet Information Services"
  3. Cochez "Services World Wide Web"
  4. Cochez "Fonctionnalités de développement d'applications"
  5. Activer tous les éléments sous cette

Ensuite, j'ai regardé l'observateur d'événements et vu cette erreur:Unable to install counter strings because the SYSTEM\CurrentControlSet\Services\ASP.NET_64\Performance key could not be opened or accessed. The first DWORD in the Data section contains the Win32 error code.

Pour résoudre le problème créé manuellement à la suite d’une entrée dans le registre:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ASP.NET_64\Performance

et a suivi ces étapes:

  1. Recherchez "Activer ou désactiver les fonctionnalités de Windows"
  2. Cochez "Internet Information Services"
  3. Cochez "Services World Wide Web"
  4. Cochez "Fonctionnalités de développement d'applications"
  5. Activer tous les éléments sous cette
0
SharpCoder

Cela a fonctionné pour moi Également dans IIS 8, vous pouvez résoudre ce problème en modifiant le serveur en IIS Express. Allez à debug-> Propriétés Sur le Web, sélectionnez le serveur en tant que IIS Express dans le menu déroulant, puis régénérez la solution.

0
LahiruD

J'ai eu le même problème. 

  • Résolu en activant la fonctionnalité Serveur d'applications. Redémarré après.
0

Pour effectuer une modification au niveau de l'application (Web.Config):

Supprimez le niveau de confiance du fichier web.config:

En fait, cette erreur me causait lorsque j'essayais d’héberger mon site Web sur le serveur d’hébergement alors que je n’avais aucun contrôle sur leur serveur. Supprimer la ligne ci-dessus de mon application web.config a résolu mon problème.

0
Ankit Prajapati