【问题标题】:Web.config in virtual directory is not overriding parent website's Web.config虚拟目录中的 Web.config 不会覆盖父网站的 Web.config
【发布时间】:2013-03-22 00:01:01
【问题描述】:

我有一个网站,其中有一个虚拟目录,其中还包含一个网站,当我尝试从虚拟目录启动页面时,我收到一个 IIS 7.5 错误,该名称(来自连接字符串)已经是在集合中。在我将域用户添加为应用程序池中的身份之前,这不是问题。有谁知道为什么会这样?我的印象是子级应用程序的 web.config 默认会覆盖父级的。再一次,这在我添加自定义身份之前一直有效。

页面上的错误是“Parser Error Message: The entry 'dbname' has been added。”

dbname 在两个连接字符串中的位置(即父目录和虚拟目录)。我无法删除其中一个连接字符串,因为虚拟目录仅为测试目的而创建,但在生产中它作为自己的网站运行。

【问题讨论】:

    标签: asp.net .net web-config iis-7.5 connection-string


    【解决方案1】:

    无论应用程序如何,子 web.config 都不会覆盖父级。所有的 web.configs 将一直堆叠到主应用程序的根目录。为了使子应用程序文件夹能够使用已在使用的连接字符串密钥,必须首先将其删除或必须清除所有连接字符串。如果您希望这是一个真正独立的应用程序,请将其添加到您的连接字符串中:

    <connectionStrings>
        <clear />
        <your connection string>
    <connectionStrings>
    

    如果您只想删除单个连接字符串,请使用:

    <remove key="yourConnectionStringName" />
    

    【讨论】:

    • 知道为什么以前没有发生这种情况吗?多年来,我一直在设置这两个应用程序,从未遇到过冲突。另外,我不能排除子应用程序中的连接字符串,因为这通常用于服务器的根级别。
    • @u84six:它不会从根级别删除它,它只会从该级别的应用程序(以及该应用程序的任何子级)中删除它。不,我真的不能说为什么会这么突然。您描述的更改在此冲突中没有任何作用。
    • @MystereMan:这是不正确的。虚拟目录将被视为任何普通子目录,并且 web.config 文件将继续堆叠和继承。 msdn.microsoft.com/en-us/library/ms178685(v=vs.100).aspx
    • @JoelEtherton 如何在 IIS 6 中实现这一点?我的网站正在运行 SharePoint (2007)。我在这个网站下的一个虚拟目录中创建了一个应用程序,由它自己的应用程序池管理。然而,我在 SharePoint 的配置和这个应用程序之间遇到了冲突。请参阅this question 我在服务器故障中发布。目标是让虚拟目录中的这个应用程序完全独立于 SharePoint 的 web.config。
    • @WebUser:我已经对那个问题发表了评论。但是,关于这个问题,如果您希望它们真正解耦,您必须查看 SharePoint 的 web.config 并确保 SharePoint 中引用的每个部分都使用&lt;clear /&gt; 取消引用。这样做的危险在于,您还将消除 machine.config 中指定的任何内容,因此您必须在您的子 web.config 中复制这些条目。但是,从问题的症状来看,web.config 不太可能是罪魁祸首。
    【解决方案2】:

    @u84six,

    今天这件事发生在我身上。 我在同一个根网站中有一些网站和网络服务。根是默认的 iis 网站(默认网站),我认为它指向 C:\Inetpub\wwwroot。它是一个开发环境。

    在阅读this answer 之后,我发现我的一个网络服务是根网站(仍然不确定是什么改变了它……也许是从 2010 年迁移到 2012 年之后的 Visual Studio)。该网络服务正在使用冲突的连接字符串。我将路径改回 C:\Inetpub\wwwroot\,一切正常。

    也许你也遇到过类似的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 2011-10-24
      • 1970-01-01
      • 2012-07-23
      相关资源
      最近更新 更多