当使用.net内核读取设备twin时,程序在没有记录任何异常的情况下存在



围绕这个问题的技术是Azure IOT HubC#

应用程序框架:.NET Core 2.1

我试图实现的功能是按照读取IOT Hubdevicedevice twin属性

string DeviceId = configuration["Azure:DeviceId"];
string DeviceKey = configuration["Azure:DeviceKey"];
string deviceConnectionString = "HostName=xxxxxx.azure-devices.net;DeviceId={0};SharedAccessKey={1}";
deviceConnectionString = string.Format(deviceConnectionString,
DeviceId, DeviceKey);
ConfigHubClient = DeviceClient.CreateFromConnectionString(deviceConnectionString, TransportType.Mqtt_WebSocket_Only);
try
{
var twin = await ConfigHubClient.GetTwinAsync();
deviceTwinConfig = twin.Properties.Desired; // debugger never comes here
}
catch()
{
--Logging exceptions code here
}

没有抛出或记录异常。

如果执行上述代码的方法是void方法,并且调用该方法的代码是应用程序的入口点(例如控制台应用程序中的Main方法(,则在执行await ConfigHubClient.GetTwinAsync()时,代码将返回到调用方法(即Main(。

如果是这种情况,请尝试将方法的返回值从void更改为Task,然后等待入口点方法中的调用。

希望它能有所帮助!

最新更新