Microsoft.Azure.Devices 1.38.1 通过其服务端 HttpTransportSettings 提供 HTTP 代理。创建 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 代理列表 为此 RegistryManager 使用的公共 HTTP 路由提供候选。

如果代理需要登录,请在构造客户端前设置 proxy.Credentials。IoT Hub 连接字符串用于验证服务请求,并不提供该中间账户。

这个 HttpTransportSettings 属于服务包 Microsoft.Azure.Devices。设备客户端的 MQTT 和 AMQP 连接使用其他设置,因此注册表操作成功只说明 HTTP 服务路由可用。

相关文章