IIS 7.5: виртуальные каталоги с разными документами по умолчанию

У нас есть типичная настройка в IIS для нашего веб-приложения с виртуальными каталогами для различных проектов:

  • www.webapp.com (веб-сайт)
    • project1 (виртуальный каталог)
    • project2 (виртуальный каталог)
    • project3 (виртуальный каталог)

В веб-приложении в качестве документа по умолчанию используется login.aspx, как и все виртуальные каталоги. Теперь мне нужен другой документ по умолчанию (index.aspx) только для веб-сайта www.webapp.com. Виртуальные каталоги будут продолжать использовать login.aspx и только это.

РЕДАКТИРОВАТЬ: Все виртуальные каталоги указывают на один и тот же физический каталог. Если я изменю документ по умолчанию для www.webapp.com, он также изменится для всех базовых виртуальных каталогов.

Раньше это было легко в IIS 6, но в IIS 7.5 я не смог реализовать это.

Я думаю, что мне нужно изменить applicationhost.config, добавив теги местоположения, но я понятия не имею, как начать. Может ли кто-нибудь указать мне правильное направление?

Спасибо! Стейн

4 ответа

Для этого вам нужно изменить файл ApplicationHost.config. Местоположение файла в данный момент находится в каталоге%windir%\system32\inetsrv\config.

Раздел Расположение ближе к концу документа необходимо изменить соответствующим образом в зависимости от документов вашего приложения по умолчанию. например, -

<location path="Default Web Site/App">
    <system.webServer>
        <defaultDocument enabled="true">
            <files>
                <clear />
                <add value="Login.aspx" />
            </files>
        </defaultDocument>
        <security>
            <authentication>
                <anonymousAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
</location>


<location path="Default Web Site/App/VApp2">
    <system.webServer>
        <defaultDocument enabled="true">
            <files>
                <clear />
                <add value="LoginPage2.aspx" />
            </files>
        </defaultDocument>
        <security>
            <authentication>
                <anonymousAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
</location>

1) Перейдите -> IIS -> виртуальный каталог (двойной щелчок) -> щелкните Документ по умолчанию -> нажмите кнопку Добавить -> Введите html,aspx и т. Д. Для (например, index.html, k. html)

2) Перейдите в свой физический каталог -> откройте файл web.config с помощью (notepad ++)

3) удалить все строки

4) добавить эти строки

    <?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <location path="XX">
       <system.webServer>
       <defaultDocument enabled="false">
         <files>
            <clear />
              <add value="XXX.html" />
         </files>
        </defaultDocument>
    </system.webServer>
    </location>
    </configuration>

5) Редактировать некоторые изменения

<location path="XX">

XX -> имя вашего виртуального каталога

 <add value="XXX.html" />

XXX.html -> название вашей страницы с расширением

Может быть, я не понял твою проблему, но она кажется мне тривиальной.

Откройте диспетчер информационных служб Интернета, выберите виртуальный каталог (двойной щелчок). В разделе IIS откройте "Документ по умолчанию" и установите документ по умолчанию (или удалите его).

Повторите процедуру для всех ваших виртуальных каталогов.

ОБНОВИТЬ:

Вопрос: указывают ли (некоторые из) ваши виртуальные каталоги на один и тот же физический каталог? IIS сохраняет информацию в файлах web.config в физическом каталоге. Это может быть вашей проблемой.

Обходной путь: создайте некоторую логику, которая перенаправляет запросы виртуальных каталогов. Или создайте копию своего физического каталога, чтобы файлы web.config могли быть установлены индивидуально.

Да, самый простой (читай: cheat-i-est) способ настроить это так:

Откройте функцию делегирования и отключите делегирование модуля документа по умолчанию (или сделайте его доступным только для чтения) для сайта.

Сделав это, GUI создаст <location> теги для вас на любом уровне ниже, чем только что настроенный параметр Делегирование.

Другие вопросы по тегам