我正在尝试使用以下代码将UWP应用连接到Azure IotHub。我已经尝试过使用相同代码的控制台应用程序,但是它可以正常工作,但不能在UWP应用程序上使用。
我已将UWP应用的所有权限(互联网以及此后的所有其他权限)授予。 尝试使用HttpClient进行Get操作,并且互联网连接正常
我还尝试过将UWP应用的最新目标(Win 10,版本1803)
要从我的UWP应用连接到IotHub,我正在使用nuget包:Microsoft.Azure.Devices.Client v 1.17.1
在UWP上,代码在等待设备处停止。OpenAsync()并在一段时间后超时
我想念什么吗?
代码:
string deviceConnectionString = "<CONNECTION STRING>";
var device = DeviceClient.CreateFromConnectionString(deviceConnectionString);
await device.OpenAsync();
Message bla = new Message(Encoding.ASCII.GetBytes("blablabla"));
await device.SendEventAsync(bla);
更新-修复
需要定义传输类型,猜测默认传输类型不适用于UWP。创建客户端时,请使用以下命令:
var device = DeviceClient.CreateFromConnectionString(deviceConnectionString, TransportType.Amqp_WebSocket_Only);
答案 0 :(得分:1)
我刚刚使用您的设置在我的RPi3B上进行了测试
并且运行时失败(Windows IoT核心版10.0.17723.1000 ),但出现以下错误:
无法加载文件或程序集'System.Net.Security,版本= 4.0.1.2,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'。系统找不到指定的文件。
因此,解决方法是:
此更改后,我在RPi3B上的测试程序Blinky正常工作。
答案 1 :(得分:1)
最新版本的客户端SDK无法在使用AMQP的UWP上运行。此处有Github issue#421。请跟踪此问题。如Roman Kiss所述,Microsoft.Azure.Devices.Client版本v1.6.0可以正常使用,您可以尝试使用此版本。