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>
我不确定项目的哪些部分会对此产生影响,所以我在下面添加。如果我遗漏了任何其他相关部分,请告诉我。
该解决方案包括两个项目。一个 Web 项目和一个类库。类库项目在app.config
:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
</startup>
我认为这可能会导致一些问题(基于这篇文章)。