Когда IIS отвечает на запрос HTTP, использует 3 элемента информации, чтобы выяснить, какой веб-сайт следует использовать для создания ответа.
- IP-адрес - браузер использует имя в адресной строке для выполнения DNS-запроса и получения фактического IP-адреса хоста. Он отправляет запрос http на этот IP-адрес.
- Порт - по умолчанию это 80 для не SSL-запросов и 443 для SSL.
- заголовок хоста. Часть http-запроса - заголовок хоста. Этот заголовок хоста совпадает с доменным именем адреса, запрошенного пользователем, включая имена поддоменов или хостов. Например:
www.foo.com secure.foo.com server1.foo.com subdomain.foo.com server2.subdomain.foo.com
и т. Д.
Предположения, основанные на вашем вопросе:
1 - вашей машине назначено 3 IP-адреса:
- 192.168.1.250 - назначен веб-сайтом 1, имя WS1
- 192.168.1.249 - присваивается как web-stie 2, имя WS2
- WS1 и WS2 определены в IIS и сопоставлены с соответствующим IP-адресом
2 - Вашему аппарату назначен третий IP-адрес, который является исходным IP-адресом. (Это может или не может иметь место, я предполагаю, что это так, так как именно это делает большинство людей, когда назначают IP-адреса веб-сайтам).
3 - веб-сайт по умолчанию в IIS имеет настройку IP-адреса: (All Unassigned)
.
4 - Вы не указали заголовки или порты хоста в конфигурации IIS.
Итак, когда вы запускаете браузер на своей машине, вы набираете: http://localhost
(без номера порта), что делает IIS?
За предыдущие ответы браузер преобразует localhost в 127.0.0.1 в качестве IP-адреса и создает HTTP-запрос для этого IP-адреса. Заголовок хоста будет localhost
.
В этом сценарии IIS увидит, что и WS1, и WS2 не имеют совпадающих IP-адресов, и поэтому для обработки запроса будет использоваться сайт по умолчанию.
Если вы хотите, чтобы WS1 или WS2 отвечали на запрос, отключите сайт по умолчанию и измените настройку IP-адреса на (All Unassigned)
для WS1 или WS2.