【发布时间】:2019-03-25 19:27:36
【问题描述】:
我正在制作一个应用程序,该应用程序涉及 localhost 上的网站作为 Asp.net Core 和 SignalR Core 的用户界面。
我的问题是启动连接时出现身份验证异常。
我知道会发生这种情况,因为我还没有运行dotnet dev-certs https --trust。但我不能指望普通用户运行此命令或安装 dotnet SDK。
我尝试过使用
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
在我的 Startup.cs(和其他地方,但我知道这是一个全局设置。无论如何它是在 HubConnection 之前执行的) 无济于事。 我也尝试设置一个新的 HttpMessageHandlerFactory,但文档告诉我这不会影响 Websockets。
我不相信this 是一个解决方案,因为我不能使用不同的 HttpClient(除非我弄错了)
如你所见,我根本没有连接到 https:
connection = new HubConnectionBuilder().WithUrl("http://localhost:5000/MiniLyokoHub" ).Build();
所以我不明白它为什么要尝试获取证书。
这是完整的错误: https://pastebin.com/1ELbeWtc
我该如何解决这个问题? 我不需要证书,因为用户将连接到他们自己的本地主机。 还是我不应该使用 websockets?
【问题讨论】:
-
您既不应该在生产环境中本地运行网站,也不应该在客户端计算机上使用开发证书。
-
只是一个问题:如果用户总是连接到本地主机,为什么要使用 https?普通的 http 不够吗?
-
@ZorgoZ 就足够了,我正在连接到 http 端口,但它仍然抛出异常
-
这很奇怪。请记住:安全 SignalR 将首先尝试使用 WSS 而不是 WS,而不是 https 或 http。检查开发者控制台的实际协议。
标签: c# asp.net-core signalr.client