C'est par conception. La section de system.webServer définit essentiellement IIS lui-même. Si vous, vous ne resterez avec rien. Dans applicationHost.config, vous devriez avoir quelque chose comme ceci:
<modules>
<add name="HttpCacheModule" lockItem="true" />
<add name="DynamicCompressionModule" lockItem="true" />
<add name="StaticCompressionModule" lockItem="true" />
<add name="DefaultDocumentModule" lockItem="true" />
<add name="DirectoryListingModule" lockItem="true" />
<add name="IsapiFilterModule" lockItem="true" />
<add name="ProtocolSupportModule" lockItem="true" />
<add name="HttpRedirectionModule" lockItem="true" />
<add name="StaticFileModule" lockItem="true" />
...
Notez les propriétés lockItem. Parce qu'il y a 1 ou plusieurs éléments de verrouillage, une violation de verrouillage sera générée.
Donc, vous devez soit supprimer spécifiquement les éléments que vous ne voulez pas de web.config, ou si vous avez vraiment besoin de les effacer tous et d'ajouter les vôtres, puis dans applicationHost.config, supprimez lockItem = "true" sur chacun de ces éléments, et assurez-vous d'en rajouter suffisamment pour que votre serveur Web fonctionne réellement.
Éditer
(Ajout d'informations complémentaires de Daniel, à sa demande. (Scott))
Voici ce que j'ai fait sur la base de ce que Scott a dit:
ApplicationHost.config ouverte dans% windir% \ system32 \ inetsrv \ config. Notez que dans Windows Server 2008 64 bits, vous devrez modifier le fichier avec un éditeur 64 bits (le Bloc-notes natif fera l'affaire, mais Notepad ++ ne pourra pas trouver le fichier). Voir ici pour plus d'informations à ce sujet.
Dans l'élément, remplacez l'attribut lockItem de tous les modules par false.
Dans le fichier web.config de mon application Web, j'ai ensuite pu effectuer les opérations suivantes:
<system.webServer>
<modules>
<clear />
</modules>
</system.webServer>
Bien sûr, comme le souligne Scott, cela signifie qu'il n'y a plus de serveur Web, alors voici l'ensemble minimal de modules dont j'avais besoin pour faire fonctionner à nouveau mes fichiers (YMMV):
<add name="HttpRedirectionModule" lockItem="false" />
<add name="StaticFileModule" lockItem="false" />
<add name="CustomLoggingModule" lockItem="false" />
<add name="CustomErrorModule" lockItem="false" />
<add name="IsapiModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />
Aussi, pour toute personne intéressée, voici la trame de fond de la raison pour laquelle je fais cela.
J'espère qu'il n'est pas trop tard pour vous aider.
J'ai rencontré ce problème aujourd'hui et corrige le problème de modification du nœud XML ApplicationHost.Config suivant:
httpErrors lockAttributes = "allowAbsolutePathsWhenDelegated, defaultPath"
Supprimez ", defaultPath" et redémarrez IIS (iisreset).
J'espère que c'est utile.
la source
Essayez de supprimer votre web.config d'origine (créer une sauvegarde) et après avoir apporté des modifications via IIS (il créera un nouveau web.config), restaurez les modifications d'origine. Dans le cas où vous configurez des ERREURS HTTP, suivez ce http://paymentgatewayintegrationhelp.com/Tech-Help/HTTP-Errors-and-webconfig-Lock-Violation-1140.asp
la source