Как использовать путь расположения в 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.
Может кто-то указать, что я делаю не так?
Я попытался установить атрибут пути к
- доменное имя
- понятное название сайта в 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, вы увидите разные документы по умолчанию, установленные для двух сайтов.