ASP.NET,机器级web.config和location元素的问题

时间:2010-04-15 00:22:55

标签: iis-7 location web-config

我有一台运行Windows Web Server 2008 R2的服务器。机器级web.config具有以下条目:

<location path="Preview">
    <appSettings>
        <add key="Environment" value="Preview" />
    </appSettings>
</location>

<location path="Staging">
    <appSettings>
        <add key="Environment" value="Staging" />
    </appSettings>
</location>

<location path="Production">
    <appSettings>
        <add key="Environment" value="Production" />
    </appSettings>
</location>

我有一个我在D:\Sites\Preview\方向设置的网站,因此完整路径为D:\Sites\Preview\WebSite1。如果我输入一个只输出ConfigurationManager.AppSettings["Environment"]值的简单aspx文件,它会显示值Preview

我不清楚它究竟是如何工作的,但确实如此。几周前我已经设置了这个,刚刚尝试复制这个 - 我在D:\Sites\Preview\目录中放了第二个站点,期望它会自动选择相应的appSettings条目,但由于某种原因它没有' - 相同的aspx页面没有显示任何内容。

此外,当我进入IIS管理器并打开配置编辑器时,其中没有设置,而是为第一个站点列出了设置。

关于我可能遗失的任何想法?位置元素是打算像这样工作,还是我在第一个网站上找到了一些神奇的侥幸?


更新

我配置的网站的实际名称是:

    {li> 预览.Wishinator D:\Sites\Preview\DanDoes.Wishinator.Site(这是有效的) {li> D:\Sites\Preview\DanDoes.ShowRoom中的Preview.ShowRoom (无效) {li> D:\Sites\Preview\Test中测试(不起作用)

1 个答案:

答案 0 :(得分:0)

上面的位置标记应与IIS中的网站名称匹配,以使其正确匹配,因此我的猜测是您的网站\ Preview \ WebSite1在IIS“预览”中命名。

总而言之,匹配不是由文件夹名称进行的,而是由IIS中配置的“站点名称”进行的。