configSource文件' mycustom.config'也用于父级,这是不允许的

时间:2018-04-12 03:08:45

标签: asp.net visual-studio-2010 visual-studio-2015 virtual-directory configsource

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

您的网站正在使用虚拟路径,例如" http://localhost:12345/myvirpath"

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

<configuration>
    <configSections>
        <section name="MyConfig" type="mydomain.MyConfig_Model, mydomain" />
    </configSections>
    <ConfigRoot configSource="mycustom.config" />
    ...
</configuration>

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

一切都运作良好。


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

由于VS2015不再提供&#34; ASP.NET开发服务器&#34;。

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

但是当你使用IISEXPRESS,并制作&#34;项目URL&#34; as&#34; http://localhost:12345/myvirpath&#34;在Web项目属性中。

按&#34; F5&#34;,您将收到错误讯息:

configSource文件&#39; mycustom.config&#39;也用于父母,这是不允许的。


原因是IISEXPRESS将创建2个站点,&#34; http://localhost:12345/&#34;和&#34; http://localhost:12345/myvirpath&#34;

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

因此会出现错误信息。


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

解决方案是:

  1. 在VS2015中打开您的解决方案。

  2. 使项目网址为&#34; http://localhost:12345/myvirpath&#34;在您的网站项目属性中。

  3. &#34;覆盖应用程序根URL&#34;的复选框;是不必要的。

  4. 在以下位置打开您的IISEXPRESS配置:&#34; $(solutionDir).vs \ config \ applicationhost.config&#34;, 在&lt; sites&gt;中你会发现两条路径&#34; /&#34;和&#34; / myvirpath&#34;正在使用相同的物理路径。

    <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>
    
  5. 现在更改&#34; /&#34;的物理路径到这样的另一条道路:

    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
    </application>
    
  6. 保存。现在你可以使用&#34; F5&#34;执行您的Web项目时不再出现错误消息。

0 个答案:

没有答案