Это по замыслу. Раздел system.webServer по сути определяет сам IIS. Если вы, вы не останетесь ни с чем. В applicationHost.config у вас должно быть что-то вроде этого:
<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" />
...
Обратите внимание на свойства lockItem. Поскольку есть 1 или более элементов блокировки, будет выброшено нарушение блокировки.
Итак, вам либо нужно специально удалить только те элементы, которые вам не нужны, из web.config, либо, если вам действительно нужно очистить их все и добавить свои собственные, то в applicationHost.config удалите lockItem = "true" в каждый из этих элементов, и убедитесь, что их достаточно, чтобы ваш веб-сервер действительно работал.
редактировать
(Прилагается дополнительная информация от Дэниела, согласно его запросу. (Скотт))
Вот что я сделал, основываясь на том, что сказал Скотт:
Открыл applicationHost.config в% windir% \ system32 \ inetsrv \ config. Обратите внимание, что в 64-битной Windows Server 2008 вам нужно будет отредактировать файл с помощью 64-битного редактора (это будет делать родной Блокнот, но Notepad ++ не сможет найти файл). Смотрите здесь для получения дополнительной информации об этом.
В элементе измените атрибут lockItem во всех модулях на false.
В файле web.config моего веб-приложения смог сделать следующее:
<system.webServer>
<modules>
<clear />
</modules>
</system.webServer>
Конечно, как указывает Скотт, это означает, что веб-сервера не осталось, поэтому вот минимальный набор модулей, который мне понадобился для возобновления работы (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" />
Кроме того, для тех, кто заинтересован, вот предыстория того, почему я делаю это.
Надеюсь, еще не поздно помочь.
Я получил эту проблему сегодня и исправил проблему редактирования в следующем XML-узле ApplicationHost.Config:
httpErrors lockAttributes = "allowAbsolutePathsWhenDelegated, defaultPath"
Удалите это «defaultPath» и перезапустите IIS (iisreset).
Я надеюсь, что это полезно.
источник
Попробуйте удалить исходный файл web.config (создать резервную копию) и после внесения изменений через IIS (он создаст новый файл web.config) восстановить исходные изменения. Если вы настраиваете ОШИБКИ HTTP, следуйте этому http://paymentgatewayintegrationhelp.com/Tech-Help/HTTP-Errors-and-webconfig-Lock-Violation-1140.asp
источник