我正在尝试将 ASP.NET Core 边缘模块连接到边缘运行时集线器(本地),但它没有连接并且失败并出现 CONNECT failed: RefusedNotAuthorized 异常。我有标准的 .net 核心模块,它们连接到边缘集线器并发布消息,但 ASP.NET 核心边缘模块没有。.net core 和 asp.net core edge 模块都是从 Azure IOT Edge 门户推送的。
/// <summary>
/// Initializes the DeviceClient and sets up the callback to receive
/// messages containing temperature information
/// </summary>
static async Task Init(string connectionString, bool bypassCertVerification = false)
{
Console.WriteLine(DateTime.Now.ToLongTimeString() + " Connection String {0}", connectionString);
MqttTransportSettings mqttSetting = new MqttTransportSettings(Microsoft.Azure.Devices.Client.TransportType.Mqtt_Tcp_Only);
// During dev you might want to bypass the cert verification. It is highly recommended to verify certs systematically in production
if (bypassCertVerification)
{
mqttSetting.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
}
ITransportSettings[] settings = { mqttSetting };
try
{
// Open a connection to the Edge runtime
DeviceClient ioTHubModuleClient = DeviceClient.CreateFromConnectionString(connectionString, settings);
await ioTHubModuleClient.OpenAsync();
Console.WriteLine(DateTime.Now.ToLongTimeString() + " IoT Hub module client initialized.");
}
catch(Exception ex)
{
Console.WriteLine(DateTime.Now.ToLongTimeString() + ex.Message);
}
}