Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Azure IoT Hub获取设备列表_C#_Azure_Asp.net Web Api_Azure Iot Hub - Fatal编程技术网

C# 从Azure IoT Hub获取设备列表

C# 从Azure IoT Hub获取设备列表,c#,azure,asp.net-web-api,azure-iot-hub,C#,Azure,Asp.net Web Api,Azure Iot Hub,我是微软Azure物联网中心的新手。我想获取我的物联网中心中的设备列表,并检查列表中是否有任何设备 如果我使用控制台应用程序,它可以正常工作 静态异步void QueryDevices() { registryManager=registryManager.CreateFromConnectionString(DeviceConnectionString); var devices=await registryManager.getDeviceAsync(100);//时间1 sek forea

我是微软Azure物联网中心的新手。我想获取我的物联网中心中的设备列表,并检查列表中是否有任何设备

如果我使用控制台应用程序,它可以正常工作

静态异步void QueryDevices()
{
registryManager=registryManager.CreateFromConnectionString(DeviceConnectionString);
var devices=await registryManager.getDeviceAsync(100);//时间1 sek
foreach(设备中的var项)
{
Console.WriteLine(“分区id:+item.id+”,连接状态:+item.ConnectionState);
}
Console.WriteLine(“\n设备数:+devices.Count());
}
但是如果我在WebAPI中使用“相同”的代码,
getDeviceAsync()
会一直运行,没有任何结果

public bool检查iothubconnection(字符串iotHubConnectionString)
{
registryManager=registryManager.CreateFromConnectionString(IoTubConnectionString);
返回CreateConnection().Result;
}
专用异步任务CreateConnection()
{
bool connectionOk=false;
尝试
{
//从物联网中心获取所有设备
var result=await registryManager.getDeviceAsync(10);//这永远不会进一步
if(result.Any())
connectionOk=true;
}
捕获(例外情况除外)
{
connectionOk=false;
掷骰子;
}
返回连接OK;
}

我做错了什么?

您可以尝试使用以下代码格式:

...

System.Threading.ThreadPool.QueueUserWorkItem(a => CheckIoTHubConnection(iotHubConnStr));

...
它对我有用

有关更多信息,请参考初始帖子“”


对于这个问题,梅在一定程度上解释道。

目前这种方法已经过时,没有替代品。。。