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

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

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

У каждого арендатора есть собственное доменное имя, которое они указывают на 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

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

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

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

% windir% \ system32 \ inetsrv \ appcmd.exe установить config "MySite1" -section: system.webServer / defaultDocument - + files. [value = 'newdoc.aspx'] -commitpath: apphost

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

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

% windir% \ system32 \ inetsrv \ appcmd.exe установить config "MySite1 - www.site1.com" -section: system.webServer / defaultDocument - + files. [value = 'Connect.asp? CompanyID = 425'] -commitpath: apphost

и

% windir% \ system32 \ inetsrv \ appcmd.exe установить config "MySite2 - www.site2.com" -section: system.webServer / defaultDocument - + files. [value = 'Connect.asp? CompanyID = 426'] -commitpath: apphost

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