Как избежать добавления тега httpruntime в web.config при развертывании
Я получаю ошибку Config section 'System.web/httpRuntime' already defined
когда я разверну наше приложение в нашей среде разработки.
После развертывания, если я нажму Authentication
Кнопка в обзоре управления серверами IIS, я получаю следующее сообщение об ошибке:
Web.Config
на IIS есть <system.web>
элемент выглядит так:
<system.web>
<compilation targetFramework="4.6.1" />
<httpRuntime targetFramework="4.5" />
<authentication mode="None" />
<authorization>
<deny users="?" />
</authorization>
<httpRuntime requestValidationMode="4.5" />
</system.web>
Проблема явно в том, что как-то <httpRuntime targetFramework="4.5" />
а также <httpRuntime requestValidationMode="4.5" />
добавляются в <system.web>
, Моя проблема в том, что я не могу понять, как <httpruntime>
тег добавляется в мой Web.Config
при развертывании в нашей среде разработки. Это не происходит на моей локальной машине. Мы используем Octopus Deploy в качестве инструмента развертывания (я не уверен, имеет ли это значение).
Web.Config
<system.web>
в проекте выглядит так
<system.web>
<compilation debug="true" targetFramework="4.5.2"/>
</system.web>
и Web.Release.Config
<system.web>
выглядит так
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<authentication xdt:Transform="Insert" mode="None" />
<authorization xdt:Transform="Insert">
<deny users="?" />
</authorization>
</system.web>
Я не уверен, какие части проекта могут повлиять на это, поэтому я добавлю следующее. Пожалуйста, дайте мне знать, если я пропустил какие-либо другие соответствующие части.
Решение состоит из двух проектов. Веб-проект и библиотека классов. Проект библиотеки классов имеет это в app.config
:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
</startup>
который я думаю, может быть причиной некоторых проблем (на основе этой статьи).