可能的原因是证书验证失败,可以通过在 Program.cs
和 Startup.cs
文件中添加以下配置来解决问题。
在 Program.cs
中将 CreateHostBuilder
方法修改如下:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
webBuilder.ConfigureKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5001, listenOptions =>
{
listenOptions.UseHttps("certificate.pfx", "password");
});
});
});
要注意的是,将 IPAddress.Loopback
替换为正确的 IP 地址并将 5001
替换为 HTTPS 使用的端口号。
在 Startup.cs
中添加以下代码段:
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddServerSideBlazor();
services.AddHttpClient("ServerAPI", client => {
client.BaseAddress = new Uri("https://localhost:5001/");
})
.ConfigurePrimaryHttpMessageHandler(() =>
{
var handler = new HttpClientHandler();
// Return `true` to allow certificates that are untrusted/invalid
handler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
return handler;
});
}
这将允许在运行时创建 HttpClient,并使用 DangerousAcceptAnyServerCertificateValidator
回调来允许不安全的证书进行验证。
最后,将证书.pfx文件和其密码放置在项目根目录下或任何其他可访问的位置中,并替换上述代码中的 "certificate.pfx" 和 "password" 为实际的证书文件名和密码。
这应该可以解决 Blazor Net 5 The SSL connection could not be established 的问题。