在publishCommand,ApplicationClient之后的SocketException

问题描述 投票:1回答:2

我在IBM Watson IoT Platform中创建了一个应用程序,并使用提供的代码示例来连接ApplicationCLient对象。

连接很好,但是当发送发布命令时,在VS2017的输出窗口中得到这个之后一两秒钟:

Exception levée : 'System.Net.Sockets.SocketException' dans System.dll
Exception levée : 'System.IO.IOException' dans System.dll
Exception levée : 'System.IO.IOException' dans System.dll
Le thread 0x4a4 s'est arrêté avec le code 0 (0x0).
Exception levée : 'System.Security.Cryptography.CryptographicException' 
dans mscorlib.dll

问题是,我到处都使用过try / catch块,但它们没有捕获这些异常。

我猜它是关于端口转发,但即使在打开watson iot所需的端口之后,我似乎无法使命令正常工作

我可以成功地从设备发布事件并在ApplicationClient上接收这些事件,我只遇到Command问题。

编辑:添加说明 - 我不知道使用端口exaclty,它是管理连接的IBMWIoTP,但文档说要打开1883,80,8883和443.我做了,在Windows防火墙和我的路由器。

  • 发布方法lokks像这样: appClient.publishCommand(“Raspberry”,“Pi2B”,“pi”,“txt”,数据,0); Raspberry是设备类型; Pi2B为设备ID,pi为主题,txt为格式,数据为字符串,0为QoS。
  • 我正在使用IBM的推荐Nuget库:IBMWIoTP
  • 我试图在安全性中设置TLS可选,但这并没有解决问题
  • 我在连接方法的IBMWIoTP库源代码中找到了具有未捕获异常的确切时刻:

connevtionState = mqttClient.Connect(clientId,clientUsername,clientPassword,cleanSession,keepAlivePeriod);

c# ibm-cloud watson-iot
2个回答
0
投票

丢失的连接可能表示您正在尝试执行非法操作,例如发布到您不允许的主题。


0
投票

好吧,我找到了原因......我感到很惭愧。我已经影响了应用程序上的错误配置文件,我无法使用此配置文件发送命令。我已经设置了标准的应用程序配置文件,现在一切正常。我浪费了太多时间......

© www.soinside.com 2019 - 2024. All rights reserved.