Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 配置源文件';mycustom.config';也在父级中使用,这是不允许的_Asp.net_Visual Studio 2010_Visual Studio 2015_Virtual Directory_Configsource - Fatal编程技术网

Asp.net 配置源文件';mycustom.config';也在父级中使用,这是不允许的

Asp.net 配置源文件';mycustom.config';也在父级中使用,这是不允许的,asp.net,visual-studio-2010,visual-studio-2015,virtual-directory,configsource,Asp.net,Visual Studio 2010,Visual Studio 2015,Virtual Directory,Configsource,如果您是在VS2010中开发ASP.NET网站的。(或2015年之前) 并且您的站点正在使用虚拟路径,例如“” 您可以使用Web.config中的configSource来定制配置文件,如下所示: <configuration> <configSections> <section name="MyConfig" type="mydomain.MyConfig_Model, mydomain" /> </configSect

如果您是在VS2010中开发ASP.NET网站的。(或2015年之前)

并且您的站点正在使用虚拟路径,例如“”

您可以使用Web.config中的configSource来定制配置文件,如下所示:

<configuration>
    <configSections>
        <section name="MyConfig" type="mydomain.MyConfig_Model, mydomain" />
    </configSections>
    <ConfigRoot configSource="mycustom.config" />
    ...
</configuration>
<application path="/" applicationPool="Clr4IntegratedAppPool">
    <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>

...
您可以在开发中进行测试,并且可以在生产IIS下的虚拟路径中顺利运行站点

一切正常


但当您在VS2015中打开解决方案时

由于VS2015不再提供“ASP.NET开发服务器”

你必须使用IISEXPRESS来开发和测试你的网站

但是当您使用IISEXPRESS,并在web项目属性中将“项目URL”设置为“”时

按“F5”,您将得到错误消息:

配置源文件“mycustom.config”也在父级中使用,这是不允许的。


原因是IISEXPRESS将创建2个站点“和”

两个站点将指向相同的物理路径,这是不允许的

所以会有那个错误信息


我在谷歌上搜索了很多天,找到了解决这个问题的最终方法,并在这里分享

解决办法是:

  • 在VS2015中打开您的解决方案

  • 使项目URL在web项目属性中为“”

  • “覆盖应用程序根URL”复选框不是必需的

  • 在以下位置打开IISEXPRESS配置:“$(solutionDir.vs\config\applicationhost.config”, 在本节中,您将发现路径“/”和“/myvirpath”使用相同的物理路径

    <site name="MyWeb.Web-Site" id="2">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="D:\MyWeb\MyWeb.Web" />
        </application>
        <application path="/myvirpath" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="D:\MyWeb\MyWeb.Web" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:55923:localhost" />
        </bindings>
    </site>
    
    
    
  • 现在将“/”的物理路径更改为另一个路径,如下所示:

    <configuration>
        <configSections>
            <section name="MyConfig" type="mydomain.MyConfig_Model, mydomain" />
        </configSections>
        <ConfigRoot configSource="mycustom.config" />
        ...
    </configuration>
    
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
    </application>
    
    
    
  • 保存它。现在,您可以使用“F5”来执行web项目,而不再显示错误消息


  • 我们遇到了同样的问题,并用几乎相同的解决方案解决了它。我们的站点在站点下方有一个虚拟目录。因此,我们将
    path=“/”
    部分设置为网站的物理路径,将
    path=“/myvirpath”
    设置为虚拟目录的物理路径。成功了。谢谢。我刚刚删除了旧的.vs文件夹。下一次VS开始调试时,它重建了.VS文件夹,解决方案现在就可以工作了。谢谢奇诺的提示。通常你会先问这个问题。然后回答你自己的问题,如果你找到了解决办法。我认为,当浏览这一页时,还不清楚这个问题是否已经包含了答案+1用于指出applicationhost.config。