Назад | Перейти на главную страницу

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

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

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

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

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

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

Спасибо! Stijn

Для этого вам необходимо изменить файл 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 -> имя вашей страницы с расширением

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

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

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

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

Откройте Internet Information Services Manager, выберите виртуальный каталог (дважды щелкните). В разделе IIS откройте «Документ по умолчанию» и установите документ по умолчанию (или удалите некоторые).

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

ОБНОВИТЬ:

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

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