2012-06-19 2 views
3

Здравствуйте, прекрасные пользователи Stackoverflow!IIS Express не запускается на локальном хостинге с ipv6

Вот что-то смешное, что случилось со мной - может быть, вы можете объяснить, почему?

На полпути через мой рабочий день вчера моя установка IIS Express перестала работать.

Сначала я думал, что это проблема с проектом ASP.NET, над которым я работал, просто висит и не запускается, потому что страница продолжала висеть, пока она не затухала. Затем я попробовал некоторые другие проекты, также настроенные на запуск на localhost: 8080 - и они не будут загружаться - даже простые HTML-версии.

Теперь, когда я говорю, что они не будут загружаться; Я имею в виду никакой активности вообще. Страница будет «загружаться» в хром целую вечность, а консоль IISExpress не будет регистрировать какие-либо запросы GET, пока, в конце концов, вкладка в хроме не отобразит ошибку тайм-аута.

Этим утром я (с некоторой помощью) понял что-то - по какой-то причине, когда я пингуюсь localhost адрес IPv6 ::1: будет возвращать вместо адреса ipv4 127.0.0.1 - я не заметил это поведение прежде, и приют I» t изменил настройки сети.

Я отредактировал мой файл HOST и включил запись для 127.0.0.1 localhost, чтобы заставить ping localhost вернуть адрес ipv4. Это сработало, и когда я попробовал IIS Express снова привязываться к localhost: 8080, он также работал.

Мой вопрос:; Что на Земле?!?!

Я понятия не имею, почему это произошло. Я знаю, что мне удалось исправить отдельную проблему, отредактировав мой файл HOST, но кто-нибудь знает, почему это могло произойти?

Любая идея, почему ping localhost вдруг начнет возвращать адрес ipv6? И любая идея, почему IIS Express не будет работать с ipv6? (Я предполагаю, что у IIS-двигателя будет то, что испечено в настоящее время).

Хотелось бы понять, что случилось, чтобы избежать каких-либо дальнейших проблем и ради раритета.

Заранее спасибо за любую информацию,

Phil

ответ

0

Пока IPv6 включен в вашей системе, :: 1 и 127.0.0.0 являются действительными адресами для «локальный». Какая из двух возвращается системой и используется для, например, pings более или менее недетерминирован, если программа не запрашивает IPv4 или IPv6-адрес, а так как Windows-пинг может обрабатывать либо, вероятно, этого не делал.

Что касается IIS, ответы, подобные этому, предполагают, что это поведение по назначению и Вам необходимо включить привязку к IPv6-адреса отдельно: https://serverfault.com/questions/123796/get-iis-7-5-to-listen-on-ipv6

3
  • Открыть окна администратора CMD, а затем выполнить это с помощью порта, 're binding to: netsh http add urlacl url="http://[::1]:8080/" user=everyone.Это говорит о вашей системе, что это круто привязать к ::1
  • Открыть %USERPROFILE%\Documents\IISExpress\config\applicationhost.config, найти раздел вашего сайта, а также добавить IPv6 связывания: <binding protocol="http" bindingInformation="[::1]:8080:*" />

Пример:

<site name="WebSite1" id="2"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\Users\ryan.versaw\Documents\WebSite1" /> </application> <bindings> <binding protocol="http" bindingInformation="*:8080:localhost" /> <binding protocol="http" bindingInformation="[::1]:8080:*" /> </bindings> </site>

Смежные вопросы