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?
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:
au fait, j'utilise Windows 7.
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:
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".
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
.
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
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.
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:
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
Sur Windows Server 2012 avec IIS 8, j'ai résolu ce problème en activant la fonctionnalité ASP.NET 4.5:
puis en suivant la réponse de Ken .
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,
Puis réinitialisez IIS (facultatif) mais faites-le de façon plus sûre.
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é!
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.
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" />
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
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:
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.
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
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>
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" />
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.
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.
Examinez attentivement toutes ces configurations dans l’ordre de 1 à 6 et vous devriez le trouver.
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.
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>
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é.
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.
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.
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>
j'ai résolu ce problème
allez dans cmd et exécutez aspnet_regiis -i
j'espère que cela aidera quelqu'un.
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:
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:
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.
J'ai eu le même problème.
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.