Проблемы с ASP.NET, файлом 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. Если я помещу простой файл aspx, который просто выводит значение ConfigurationManager.AppSettings["Environment"], он отображает значение Preview.

Я не совсем понимаю, как это работает, но это работает. Я настроил это несколько недель назад и только сейчас попытался продублировать это - я поместил второй сайт в каталог D:\Sites\Preview\, ожидая, что он автоматически подберет соответствующие записи appSettings, но по какой-то причине это не так - та же страница aspx ничего не показывает.

Кроме того, когда я захожу в диспетчер IIS и открываю редактор конфигурации, там нет настроек, тогда как для первого сайта указаны настройки.

Любые идеи относительно того, что я мог пропустить? Предназначен ли элемент местоположения для такой работы, или я просто нашел какую-то волшебную случайность на своем первом сайте?


ОБНОВЛЕНИЕ:

Фактические имена веб-сайтов, которые я настроил:

  • Preview.Wishinator в D:\Sites\Preview\DanDoes.Wishinator.Site (это тот, который работает)
  • Preview.ShowRoom в D:\Sites\Preview\DanDoes.ShowRoom (не работает)
  • Проверить в D:\Sites\Preview\Test (не работает)

person Daniel Schaffer    schedule 15.04.2010    source источник


Ответы (1)


Приведенные выше теги местоположения должны совпадать с именем сайта в IIS, чтобы оно соответствовало правильно, поэтому я предполагаю, что ваш сайт в \Preview\WebSite1 был назван в IIS «Предварительный просмотр».

Таким образом, чтобы подвести итог, совпадение выполняется не по имени папки, а по «Имени сайта», настроенному в IIS.

person Carlos Aguilar Mares    schedule 15.04.2010
comment
Нет, ни один из названий веб-сайтов не был назван Preview, хотя оба они начинаются с Preview. Папки, содержащие сами сайты, вообще не содержат рабочего Preview. - person Daniel Schaffer; 15.04.2010