Эмулятор Azure Compute v2.5.0.0 - IP-адрес и порт (публичный порт в v2.5).

  1. В документации говорится, что до выпуска Azure SDK 1.5 развертывания веб-ролей были распределены по одному и тому же IP-адресу - 127.0.0.1, для различения веб-ролей использовались разные номера портов. Это поведение вернулось сейчас? Я заметил, что мои веб-роли развернуты под одним и тем же IP-адресом с разницей в номерах портов.

  2. Я последовательно получаю переназначение портов, если приложение запускается впервые после перезагрузки компьютера. При дальнейшем расследовании заметил следующие вещи.

    • Если машина перезагружается без выхода из Compute Emulator, порты, в которых ранее были развернуты веб-роли, НЕ освобождаются. Найдите вывод команды netstat ниже после перезагрузки машины. Это заставит эмулятор вычислений найти порт (8070), упомянутый в csdef, как занятый и рассмотреть возможность переназначения при следующем развертывании. Скажем, если мы выйдем из compute emulator или сделаем csrun.exe removeall/clean/shutdown из командной строки перед перезапуском, тогда все порты, используемые для развертывания служб, будут освобождены.

netstat -aon | findstr 8070

Прото Локальный адрес Внешний адрес Состояние PID

TCP 0.0.0.0:8070 0.0.0.0:0 СЛУШАТЬ 4

TCP [::]: 8070 [::]: 0 СЛУШАТЬ 4

ТАСКЛИСТ / ФИ "PID eq 4"

Имя изображения PID Имя сеанса Session# Mem Usage

Система 4 Услуги 0 288 К

  • Служба недоступна по ожидаемому адресу (ip: порт) из-за этого переназначения порта для вышеуказанного сценария в Azure SDK 2.5. Переназначение также происходит в Azure SDK 2.1, но затронут только частный порт, и приложение работает как общий порт, оставаясь неизменным. Но с Azure SDK 2.5 - общедоступный порт был переназначен, что приводит к сбою приложения. Найдите приведенный ниже снимок экрана csrun.exe /run [сведения о пакете] в Azure SDK 2.1 и 2.5.

Сравнение csrun между 2.1 и 2.5 Azure SDK

Вы рекомендуете решение, чтобы решить эту проблему?

1 ответ

Я нашел решение для вышеуказанной проблемы.

  1. Документация MSDN гласит: до Azure SDK 1.5 развертывания веб-ролей были распределены по одному и тому же IP-адресу - 127.0.0.1, при этом разные номера портов использовались для разграничения веб-ролей.

Это поведение (тот же IP-адрес, но другой порт для разных веб-ролей) будет существовать, если режим эмулятора находится в iisexpress.

  1. Я понял, что в Azure SDK 2.5 - режим iisexpress по умолчанию (где, как в Azure SDK 2.1 - режим фуллемулятора по умолчанию). Все начали работать обратно, когда задан аргумент фуллемулятора /usefullemulator
csrun.exe /devfabric:shutdown / полезно lemulator

csrun.exe / devfabric: чистый / полезный_мулятор

csrun.exe /devfabric:start / полезно lemulator

csrun.exe / run [pack] / полезно lemulator
Другие вопросы по тегам