Я выполняю рабочую роль Windows Azure, которая предоставляет службу WCF через порт 1433, который также определен как конечная точка ввода TCP:
<InputEndpoint name="WcfServiceEndpoint" protocol="tcp" port="1433" />
Эта же рабочая роль также предоставляет другую службу на TCP-порту 443, определенную аналогично:
<InputEndpoint name="TcpInterfaceEndpoint" protocol="tcp" port="443" />
Я вижу обе конечные точки на портале управления, я могу правильно подключиться к TcpInterfaceEndpoint через порт 443, но вообще не могу подключиться к другому порту (пробовал с двух разных компьютеров, которые оба имеют доступ SQL-серверы снаружи, т.е. порт не заблокирован для исходящих соединений). Когда я попытался подключиться локально к экземпляру Azure (через подключение к удаленному рабочему столу), telnet подключился, и все в порядке. Попытка подключения из другого места заканчивается «Тайм-аут подключения». Кажется, все говорит о том, что порт 1433 по-разному обрабатывается портом 443 и где-то блокируется брандмауэром. Я даже пытался полностью отключить брандмауэр Windows на экземпляре Azure, но ничего не изменилось.
Казалось бы, Azure не разрешает конечные точки на порту 1433 (который обычно является MS SQL Server, мы используем его в настоящее время из-за ограничений брандмауэра в среде тестирования), но я нигде не смог найти никакой информации о таких ограничениях. Итак - это так, или я где-то совершаю какую-то тривиальную ошибку?
Добавлено: Я попробовал еще один тест: я переключил оба порта в файле конфигурации, так что теперь WCF работает на 443, а TCP на 1433. И, как я и ожидал, служба WCF доступна, а Интерфейс TCP перестает работать. Теперь я совершенно уверен, что 1433 действительно каким-то образом заблокирован. Было бы хорошо, если бы эта информация была где-то задокументирована.