Мы столкнулись с довольно неприятной ошибкой в IIS7.5, из-за которой иногда удаляется содержимое тега в web.config. Он не просто удаляет содержимое во время выполнения, он фактически физически обновляет файл.
На наших локальных машинах это происходит, когда мы перестраиваем все (включая замену application.config из системы управления версиями), а на наших серверных машинах это происходит при перезапуске пула приложений. Оба случая носят временный характер.
Кажется, это происходит потому, что у нас есть некоторая конфигурация в корне конфигурации, а часть - в теге местоположения. Причина, по которой мы делаем это, заключается в том, что у нас есть некоторые виртуальные приложения под корневым приложением, и мы не хотим, чтобы они наследовали обработчики и модули. У нас есть корневой тег system.webserver, потому что есть некоторые настройки (например, validateIntegratedModeConfiguration), которые мы хотим унаследовать.
Это влияет только на настройки system.webserver, а не внутри тега местоположения. Если вы переместите все в тег местоположения, это нормально.
Наш web.config выглядит примерно так:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
...
</system.webServer>
<location path="." inheritInChildApplications="false">
<system.webServer>
<modules>
...
</modules>
<handlers accessPolicy="Read, Script">
...
</handlers>
</system.webServer>
</location>
Кто-нибудь еще сталкивался с этой проблемой?