【问题标题】:"Entry has already been added" - Two Separate App Pools“已添加条目” - 两个单独的应用程序池
【发布时间】:2014-06-15 13:11:18
【问题描述】:

我正在创建现有生产站点的测试版本。站点内部存在一个虚拟 Web 服务应用程序 - 两个 Web 配置具有相同的连接字符串。

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

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

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

谢谢 吉姆

【问题讨论】:

    标签: asp.net-mvc-4 application-pool


    【解决方案1】:

    Web.config 继承发生在不同的 appPool 之间。 如果您想停止这种行为,您应该在 applicationHost.config 文件(位于 %WINDIR%\System32\inetsrv\Config 和 %WINDIR%\SysWOW64\inetsrv\config 中)中将属性 enableConfigurationOverride="false" 添加到您的 appPool,如下所示下面的例子:

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

    马特奥

    【讨论】:

    • 这在 IIS7.5 上对我不起作用(我假设我应该在子应用的 AppPool 上添加此属性)
    • 我不记得了,目前我没有那个环境了,无论如何我会尝试将它添加到父应用程序池(或两者)
    • 对我来说效果很好,已添加到子应用程序池中。谢谢!
    【解决方案2】:

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

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

    您可以在此处查看如何解决此问题的详细信息:How to stop inheritance of <configSections>in Web.Config

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

    如果问题出在 web.config 的其他部分(不在部分中),您可以将冲突部分用&lt;location path="." inheritInChildApplications="false"&gt; 包装起来。

    其他选项可以让网络服务从网站获取连接。

    【讨论】:

    • 谢谢 - 但如果虚拟应用程序在不同的应用程序池中运行,这是否适用? (在IIS的文件夹级别配置)
    • 不太确定...在我的情况下,我认为我在父母和孩子中有不同的应用程序池,但因为它是共享主机,所以不容易知道。
    • 好的..谢谢。我选择更改连接字符串。
    猜你喜欢
    • 2018-09-02
    • 2010-11-19
    • 2014-07-18
    • 1970-01-01
    • 2013-06-09
    • 2011-01-01
    • 2020-02-03
    • 2020-04-22
    • 1970-01-01
    相关资源
    最近更新 更多