Похоже, решение моей проблемы должно быть проще, чем оно есть на самом деле, что заставляет меня думать, что я упускаю очевидное. Я пытаюсь проверить и убедиться, что удаленный клиентский компьютер может отправлять / получать сообщения из очереди служебной шины Azure.
Я использую образец приложения, предоставленный Microsoft по адресу https://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-amqp/
Пример приложения отлично работает, пока все порты открыты. Однако мне нужно, чтобы решение работало, когда доступны только порты 80/443. Если я настрою брандмауэр Windows на разрешение только входящего / исходящего трафика на 80/443, это не сработает. Я получаю сообщение об ошибке «Была сделана попытка получить доступ к сокету способом, запрещенным его разрешениями на доступ».
Оскорбительная строка из примера приложения:
sender = factory.CreateMessageSender(entityName);
Я просмотрел огромное количество сайтов, и одно из предложений, которые я нашел, заключалось в установке режима подключения на Http, например:
ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Http;
Это тоже не работает.
Я не пытаюсь настраивать пользовательские службы ни на удаленном клиенте, ни на ролях, размещенных в Azure. Мне просто нужно, чтобы они оба могли отправлять / получать сообщения через очереди и темы служебной шины Azure.
Кто-нибудь может указать на мой недостаток?