У меня есть мультитеннантный веб-сайт, который я перехожу с 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.
Может кто указать, что я делаю не так?
Я пробовал установить атрибут пути на
в любом случае это не работает.
Я нашел решение по этой ссылке на форумах iis
Вы можете поместить конфигурацию в теги местоположения в applicationhost.config, а не в файл web.config - сделав что-то вроде этого из командной строки:
% windir% \ system32 \ inetsrv \ appcmd.exe установить config "MySite1" -section: system.webServer / defaultDocument - + files. [value = 'newdoc.aspx'] -commitpath: apphost
Итак, для примера, который я опубликовал выше, я выполнил эту команду для каждого из своих сайтов
% 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 сайтов.