【问题标题】:C# kestrel https working on windows but not on macC# kestrel https 在 windows 上工作但在 mac 上不工作
【发布时间】:2020-12-26 19:04:43
【问题描述】:

我有以下代码:

var host = new WebHostBuilder()
   .UseKestrel()
   .UseUrls("https://*:" + port)
   .Configure(Configure)
   .Build();

在 Windows 上运行良好 - 我可以使用 https://127.0.0.1:1111 访问它,它运行良好。当我在 Mac 上尝试时,它会运行,但是当我尝试连接它时,它会立即“连接关闭”

我google了一下,发现usekestrel里面应该可以添加

   .UseKestrel( options => options.UseHttps...

记录在案的here

但是当我尝试它时,我只发现 .UseSystemd 作为一个选项 - 没有 .useHttps - 即使我引用的是 Microsoft.AspNetCore.Server.Kestrel.Https。

我做错了什么?为什么它在 mac 和 windows 上的行为不同,我该如何修复它以便它也可以在 mac 上运行?

【问题讨论】:

  • 如果您指定您使用的 .NET Core 版本会有所帮助...
  • 哦.. 没有意识到这会改变事情。这是netcoreapp3.1
  • 如果您转到为 ASP.NET Core 3.1 链接的页面,您会收到一条消息,指出“请求的页面不适用于 ASP.NET Core 3.1。”这意味着 API 已被删除(据我所知,它仅在 1.0 和 1.1 中可用)。这意味着您应该小心听从 Google 的任意建议。
  • 文档是关于 Core 1.1 的
  • 尝试使用 localhost 而不是 127.0.0.1。请参阅:docs.microsoft.com/en-us/dotnet/api/…

标签: c# asp.net asp.net-core asp.net-core-3.1 kestrel


【解决方案1】:

所以对于遇到此问题的任何人 - 我发现我猜到了一个答案: 你需要在终端中运行:

dotnet dev-certs https

然后它要求你运行一个非常奇怪的命令:

sudo security set-key-partition-list -D localhost ...

神奇地解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-22
    • 2013-08-18
    • 1970-01-01
    • 2017-08-05
    • 2022-01-23
    • 1970-01-01
    • 2012-07-04
    • 2017-03-15
    相关资源
    最近更新 更多