Как использовать путь расположения в web.config, чтобы установить документ по умолчанию в IIS7

У меня есть мультитенантный веб-сайт, который я перевожу с IIS5 на Win 2000 на IIS7 на 64-разрядной версии Win Server 2008.

У каждого владельца есть собственное доменное имя, которое они указывают на IP-адрес сервера приложений.

Затем мы настраиваем сайт в IIS для каждого доменного имени и указываем физический путь к пути, по которому находятся наши (классические) ASP-файлы.

Для каждого сайта я хочу установить документ по умолчанию, который запускает файл ASP и передает CompanyID в строке запроса.

Например
www.site1.com будет называть Connect.asp? CompanyID = 425
www.site2.com будет называть Connect.asp?CompanyID=426
так далее

Чтобы добиться этого на IIS7, у меня есть файл web.config в корневом физическом пути файлов ASP, который выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="www.site1.com">
    <system.webServer>
    <defaultDocument>
        <files>
            <add value="Connect.asp?CompanyID=425" />
        </files>
    </defaultDocument>
    </system.webServer>
</location>
<!-- a location entry for every other website here... -->
<location path=".">
<system.webServer>
    <defaultDocument>
        <files>
            <add value="Connect.asp?CompanyID=1" />
        </files>
    </defaultDocument>
</system.webServer>
</location>
</configuration>

Это не работает - все сайты переходят на запись CompanyID=1.

Может кто-то указать, что я делаю не так?

Я попытался установить атрибут пути к

  1. доменное имя
  2. понятное название сайта в IIS

в любом случае это не работает.

1 ответ

Решение

Я нашел решение по этой ссылке на форумах IIS

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

%windir%\system32\inetsrv\appcmd.exe set config "MySite1" -секция:system.webServer/defaultDocument -+ файлы. [value = 'newdoc.aspx'] -commitpath: apphost

  • MySite1 - понятное имя сайта в IIS (имя сайта, которое вы видите в дереве слева)
  • newdoc.aspx - это имя документа по умолчанию для этого сайта (вы можете указать строку запроса)

Так что для примера, который я разместил выше, я выполнил эту команду для каждого из моих сайтов

%windir%\system32\inetsrv\appcmd.exe установить конфигурацию "MySite1 - www.site1.com" -секция:system.webServer/defaultDocument -+ файлы.[value='Connect.asp?CompanyID=425'] -commitpath:apphost

а также

%windir%\system32\inetsrv\appcmd.exe установить конфигурацию "MySite2 - www.site2.com" -секция:system.webServer/defaultDocument -+ файлы.[value='Connect.asp?CompanyID=426'] -commitpath:apphost

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

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