Azure IoT Hub .NET: настройка HTTP-прокси для RegistryManager
Создайте Azure IoT Hub RegistryManager с помощью HttpTransportSettings.Proxy из сервисного SDK, а не полагайтесь на несвязанный транспорт устройства.
Microsoft.Azure.Devices 1.38.1 предоставляет HTTP-прокси через свой HttpTransportSettings на стороне службы. Укажите его при создании RegistryManager:
var proxy = new System.Net.WebProxy("http://proxy.example:8080");
var settings = new Microsoft.Azure.Devices.HttpTransportSettings
{
Proxy = proxy
};
var registry = Microsoft.Azure.Devices.RegistryManager
.CreateFromConnectionString(iotHubConnectionString, settings);
Используйте этот экземпляр registry для нужных операций и сохраняйте его в течение всего срока работы нагрузки. Сохраните настоящую строку подключения IoT Hub: адрес прокси относится к параметрам транспорта. Список HTTP-прокси предлагает кандидатов для публичного HTTP-маршрута, который использует этот RegistryManager.
Если прокси требует входа, задайте proxy.Credentials до создания клиента. Строка подключения IoT Hub проверяет подлинность запроса службы и не предоставляет эту промежуточную учётную запись.
Этот HttpTransportSettings принадлежит пакету службы Microsoft.Azure.Devices. MQTT- и AMQP-подключения клиента устройства используют другие параметры, поэтому успешная операция registry доказывает только то, что HTTP-маршрут службы работал.