Visual Studio устанавливает мою веб-роль Azure на 127.255.0.0:82 вместо 127.0.0.1:80. - PullRequest
10 голосов
/ 17 декабря 2011

У меня установлен Windows Azure SDK 1.6 вместе с инструментами Azure. У меня есть одна веб-роль (с двумя конечными точками, порт 80 для http и порт 443 для https), и только один экземпляр веб-роли работает (для целей тестирования).

Когда я запустил его из Visual Studio для отладки на прошлой неделе, он запустил эмулятор, подключил его к IIS с привязкой 127.0.0.1:80 и все было замечательно.

Но со вчерашнего дня, как только я начал, он пытался привязать его к 127.255.0.1:82 и перестал работать с этой ошибкой (из Visual Studio):

При подключении отладчика к рабочему процессу iis произошла ошибка. для URL 'http://127.255.0.0:82'

Теперь, если я вручную перехожу в IIS и изменяю привязки обратно, я могу получить доступ к сайту через браузер, но, очевидно, я не могу отладить его через VS.

Почему Visual Studio делает это? Что изменило его с прошлой недели (я только внес изменения в код и закомментировал их)?

Редактировать: Я знаю об этом блоге , но моя проблема, кажется, другая, потому что по одной причине у меня нет ошибок в журналах событий. И, как я уже говорил, как только я вручную изменяю привязки в IIS, я могу получить доступ к сайту должным образом, чтобы пул приложений был настроен правильно.

Edit2: у меня есть следующий набор:

<compilation debug="true" targetFramework="4.0" />

И мой облачный проект тоже настроен на запуск проекта.

1 Ответ

9 голосов
/ 17 декабря 2011

Когда я запустил его из Visual Studio для отладки на прошлой неделе, он запустил эмулятор, подключил его к IIS с привязкой 127.0.0.1:80 и все было замечательно.

Я не верю, что вы когда-либо отлаживали развернутый проект эмулятора Azure с привязкой 127.0.0.1:80 к IIS.Существует вероятность того, что вы отладили только проект веб-приложения, а не развертывание Azure.Позвольте мне объяснить, почему:

  1. Эмулятор Windows Azure использует внутренний эмулированный балансировщик нагрузки (LB).Этот эмулируемый LB связывается с портом 80 127.0.0.1 (если порт 80 уже занят, он использует порт 81)

  2. Инструменты Windows Azure динамически создают виртуальный IP-адрес для каждого экземпляра веб-ролиу тебя есть.Эти динамические IP-адреса - 127.255.0.X, где X - логический номер экземпляра (0, 1, 2 и т. Д.).

  3. Инструменты Windows Azure создают веб-сайт в локальном IIS с привязкой 127.255.0.X и портом 82

enter image description here

Шаг 3 повторяется для каждого определенного вами экземпляра.

При запуске отладки ваш браузер обычно открывает http: //127.0.0.1:81/, который является адресом LB.Но запрос с этого адреса направляется в IIS и связывается с 127.255.0.X: 82.Вы не могли бы отладить развернутый проект эмулятора Windows Azure, вручную подключив отладчик к 127.0.0.1:80, потому что, если все было в порядке, процесс w3wp не прослушивал этот адрес: порт, но Azure эмулировал LB.

Если у вас есть только WebRole (дополнительные сайты не определены), Windows Azure Tools знают, что должны подключить отладчик к 127.255.0.X: 82, где прослушивается процесс w3wp.

Это чистаярабочая конфигурация Azure Emulator & SDK & Tools v.1.6 (я думаю, также 1.5 и даже обратно до 1.3, где впервые был введен режим Full IIS)

Теперь, если я вручную перехожу к IIS иверните обратно привязки, я могу получить доступ к сайту через браузер, но, очевидно, я не могу отладить его через VS.

Да, вы сможете получить доступ к сайту, но таким образом выпропуск эмулируемого LB, который не имеет значения при разработке приложений Windows Azure.

Если у вас есть проблемы такого рода, я предлагаючто вы очищаете свое решение, перезагружаете компьютер и, если проблема не устранена, удалите SDK & Tools и выполните полную полную установку SDK & Authoring tols для Windows Azure v.1.6 с помощью установщика веб-платформы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...