围绕这个问题的技术是:Azure IOT Hub
和C#
应用程序框架:.NET Core 2.1
我试图实现的功能是按照读取IOT Hub
的device
的device 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
,然后等待入口点方法中的调用。
希望它能有所帮助!