我正在尝试从UWP应用程序连接到SignalR Core集线器。
在.NET Core应用程序(2.1)中,它可以正常工作,而在UWP中,当调用hub.StartAsync()
时会引发异常。
证书颁发机构无效或不正确
这是我的代码:
hub = new HubConnectionBuilder()
.WithUrl("http://localhost:49791/hubs/status")
.Build();
await hub.StartAsync();
这是怎么回事?
我猜想我必须在Package Manifest中配置一些东西,但是呢?
答案 0 :(得分:1)
好的,我进入了SignalR的Gitter Chat,一种用户指出了解决方法。对他表示敬意。这是谈话的摘录。
Andrew Stanton-Nurse(@anurse): 您的应用程序使用SSL吗?该URL似乎是http,但是仅当使用自签名SSL证书时才会出现此错误
JoséManuel Nieto @SuperJMN 我不确定!我正在使用默认的ASP。用于Wep API的NET Core模板。我该如何检查?谢谢你的快速反应!
Andrew Stanton-Nurse @anurse 尝试仅浏览到浏览器中的URL,它会将您重定向到https://localhost:...吗?
JoséManuel Nieto @SuperJMN 好的,我在这里发现了问题
要使其正常工作,必须取消选中
答案 1 :(得分:0)
我知道这是一段时间前发布的。我遇到了同样的问题,并且没有像您一样选中“启用SSL”。是的,它可以工作,但是如果您仍要保持SSL启用并针对https进行调试,则可以添加以下代码。 (仅用于调试,请勿将其推送到任何产品中)。我还在UWP的Private Networks
中启用了Package.appxmanifest
Connection = new HubConnectionBuilder().WithUrl("https://localhost:44333/clienthub", options =>
{
options.HttpMessageHandlerFactory = (handler) =>
{
if (handler is HttpClientHandler clientHandler)
{
clientHandler.ServerCertificateCustomValidationCallback = ValidateCertificate;
}
return handler;
};
}).Build();
bool ValidateCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
// TODO: You can do custom validation here, or just return true to always accept the certificate.
// DO NOT use custom validation logic in a production application as it is insecure.
return true;
}
答案 2 :(得分:0)