我正在遵循this关于“使用X.509证书身份验证的Azure IoT中心”的教程。样例控制台应用程序运行良好,我能够将消息发送到现有的IoThub。但是,当我尝试使用相同的代码,相同的证书和同一设备从我的UWP连接现有的IoThub时,我会不断收到非特定的异常消息=“来自HRESULT的异常:0x80072F0C”。我想知道使用X.509证书与IoT中心连接时,UWP和控制台应用程序之间的基本区别是什么。
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindByThumbprint, "thumbprint", false);
if (certs.Count > 0 && certs[0].HasPrivateKey)
{
var auth = new DeviceAuthenticationWithX509Certificate("deviceId", "X509Certificate2");
deviceClient = DeviceClient.Create("***.azure-devices.net", auth, TransportType.Amqp);
var message = new Message(Encoding.ASCII.GetBytes("Hello"));
await deviceClient.SendEventAsync(message);
outMessage = await ReceiveCloudMessageAsync();
}
else
{
throw new Exception("cert not found");
}
我能够获得自签名证书并具有私钥,但是在'SendEventAsync'处引发了异常。