C# kestrel https 在 windows 上工作,但不在 mac 上工作
C# kestrel https working on windows but not on mac
我有以下代码:
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("https://*:" + port)
.Configure(Configure)
.Build();
在 windows 上运行得非常好 - 我可以使用 https://127.0.0.1:1111 访问它并且运行良好。当我在 mac 上尝试它时 - 它会运行,但是当我尝试连接到它时,它会立即变为“连接已关闭”
我谷歌了一下,发现在usekestrel中,你应该可以添加
.UseKestrel( options => options.UseHttps...
记录在案 here:
然而,当我尝试它时,我只发现 .UseSystemd 作为一个选项 - 没有 .useHttps - 即使我正在引用 Microsoft.AspNetCore.Server.Kestrel.Https.
我做错了什么?为什么它在 mac 和 windows 上的表现不同,我该如何修复它以便它也适用于 mac?
所以对于 运行 遇到过这个的任何人 - 我发现我猜到了一个答案:
你需要在终端中 运行:
dotnet dev-certs https
然后要求你运行一个非常奇怪的命令:
sudo security set-key-partition-list -D localhost ...
它神奇地修复了问题。
我有以下代码:
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("https://*:" + port)
.Configure(Configure)
.Build();
在 windows 上运行得非常好 - 我可以使用 https://127.0.0.1:1111 访问它并且运行良好。当我在 mac 上尝试它时 - 它会运行,但是当我尝试连接到它时,它会立即变为“连接已关闭”
我谷歌了一下,发现在usekestrel中,你应该可以添加
.UseKestrel( options => options.UseHttps...
记录在案 here:
然而,当我尝试它时,我只发现 .UseSystemd 作为一个选项 - 没有 .useHttps - 即使我正在引用 Microsoft.AspNetCore.Server.Kestrel.Https.
我做错了什么?为什么它在 mac 和 windows 上的表现不同,我该如何修复它以便它也适用于 mac?
所以对于 运行 遇到过这个的任何人 - 我发现我猜到了一个答案: 你需要在终端中 运行:
dotnet dev-certs https
然后要求你运行一个非常奇怪的命令:
sudo security set-key-partition-list -D localhost ...
它神奇地修复了问题。