我将应用程序部署到开发环境时收到错误Config section 'System.web/httpRuntime' already defined
。
部署之后,如果我按下IIS服务器管理概述上的Authentication
按钮,则会收到以下错误消息:
IIS上的Web.Config
的{{1}}元素如下所示:
<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>
的。它不会发生在我的本地计算机上。我们使用Octopus Deploy作为部署工具(我不确定这是否重要)。
项目中的Web.Config
Web.Config
看起来像这样
<system.web>
而<system.web>
<compilation debug="true" targetFramework="4.5.2"/>
</system.web>
Web.Release.Config
看起来像这样
<system.web>
我不确定项目的哪些部分会对此产生影响所以我在下面添加。如果我遗漏了任何其他相关部分,请告诉我。
解决方案包括两个项目。 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
我认为可能会导致一些问题(基于this article)。