Как избежать добавления тега httpruntime в web.config при развертывании

Я получаю ошибку Config section 'System.web/httpRuntime' already defined когда я разверну наше приложение в нашей среде разработки.

После развертывания, если я нажму Authentication Кнопка в обзоре управления серверами IIS, я получаю следующее сообщение об ошибке:

Сообщение об ошибке сервера 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>

который я думаю, может быть причиной некоторых проблем (на основе этой статьи).

0 ответов

Другие вопросы по тегам