asp.net MVC 4 - "Entry has already been added" - 两个独立的应用池



我正在创建一个现有生产站点的测试版本。站点中存在一个虚拟web服务应用程序,并且这两个web配置具有相同的连接字符串。

生产web配置中没有"清晰"的标签,网站和web服务愉快地共存于两个独立的应用程序池中。

然而,在测试站点上,每次我浏览到Web服务URL时,我都会收到配置错误"条目'ConnectionString'已经添加。"

测试站点和相应的虚拟应用程序使用各自独立的应用程序池。有什么想法吗?

谢谢Jim

Web.config继承即使在不同的appPools之间也会发生。如果要停止此行为,应将属性enableConfigurationOverride="false"添加到applicationHost.config文件(位于%WINDIR%\System32\inetsrv\config和%WINDIR%%\SysWOW64\inetsrv\config中)中的appPool中,如下例所示:

<add name="MyAppPool" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" enableConfigurationOverride="false">
    <processModel identityType="NetworkService" />
</add>

Matteo

我认为问题与它们是一个站点中的另一个站点有关。就像一个内部有虚拟目录的网站。

在这种情况下。。。虚拟目录web.config正在"继承"父web.config

在这里你可以看到如何解决这个问题的细节:如何停止<configSections>在Web中。配置

其他选项:https://stackoverflow.com/a/367372/7720

如果问题出现在web.config的其他部分(而不是部分),则可以使用<location path="." inheritInChildApplications="false">包装冲突部分。

另一种选择是让网络服务从网站上获取连接。

最新更新