gpt4 book ai didi

c# - .NET Core 是否支持 Web 套接字?抛出“System.Net.WebSockets.WebSocketException 异常

转载 作者:行者123 更新时间:2023-12-03 02:54:42 33 4
gpt4 key购买 nike

我使用 .NET Core 2.1 编写了控制台应用程序。

此应用程序的职责是:连接到 Azure IoT 中心并发送数据。

我仍然遇到异常

System.Net.WebSockets.WebSocketException (0x80004005): Unable to connect to the remote server ---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. at System.Net.Security.SslState.StartSendAuthResetSignal

注意:

  • 我在 Windows Embedded Standard 上运行我的代码。
  • 使用网络套接字
  • 在 Windows 10 中运行良好

这是我的引用文献

   using Microsoft.Azure.Devices.Client;
using Microsoft.Azure.Devices.Shared;

这就是我创建连接的方式。

   string deviceConnectionString = "*******";
_Client = DeviceClient.CreateFromConnectionString(deviceConnectionString, TransportType.Mqtt_WebSocket_Only);

网络套接字无法在 Windows 7 上运行。引用:Using WebSocket on Windows 7

所以我使用 .NET Core 2.1 来获得 Web 套接字支持,如此处所述 https://github.com/dotnet/corefx/issues/20191

我仍然遇到同样的错误!

下面是什么意思?

The remote certificate is invalid according to the validation?

更新

.NET 运行时似乎无法调用旧版 Windows Embedded Standard API 来验证 TLS 证书。我可能需要在我的代码本身中执行此操作。

一些详细信息位于https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support

另一个选项是编译 C SDK,它已经具有 TLS 证书。可以通过我们的C#代码来调用它。它将变得紧凑并且依赖性更少。

最佳答案

由于我没有足够高的代表来发表评论,因此我将提供此作为答案,尽管这更多的是建议。我遇到了类似的问题,需要从 Windows Embedded 连接到 IoT 中心。我没有达到您的要求,因为我还需要使用 Web 代理,而使用 C# SDK 和 .Net Core 无法做到这一点。

我按照你提到的第二个方向编译了 C SDK。由于我的客户没有 C 经验,因此我围绕 C SDK dll 构建了一个 C# P/Invoke 包装器。或许它会对你有一些用处。您可以在这里找到它:https://github.com/markrad/IoTPInvoke

关于c# - .NET Core 是否支持 Web 套接字?抛出“System.Net.WebSockets.WebSocketException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53643821/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com