【问题标题】:ASP.NET Core app only works as rootASP.NET Core 应用程序只能作为 root
【发布时间】:2018-07-31 05:17:53
【问题描述】:

我刚刚将我的 ASP.NET 核心应用程序上的所有 Microsoft 软件包更新到最新的 2.1 版本(以及在我的 CentOS 服务器上将 SDK 更新到 2.1.4)并将代码推送到服务器。我在服务器端重建了代码并将其部署到 Web 根目录。我现在无法让服务器响应,除非它以 root 身份运行。尝试通过 Apache 代理连接时,我得到一个 502 Proxy Error,当我尝试直接连接到 Kestrel 服务器正在侦听的 SSL 端口时,我在 Chrome 中得到 ERR_CONNECTION_CLOSED

如果我以 root 用户 (dotnet WebsiteMainDll.dll) 身份手动运行该站点,它可以正常工作。如果我以它应该以 (sudo -u siteuser dotnet WebsiteMainDll.dll) 身份运行的用户身份手动运行它,它就不起作用。

控制台中没有显示错误。它只显示Now listening on https://0.0.0.0:44313 并从那时起保持沉默。

我在预先更新的代码库上运行了另一个站点实例,它作为站点用户运行良好。此实例在更新前运行良好。怎么回事?

【问题讨论】:

  • 或许可以尝试设置dotnetverbosity option,看看能否获得更多信息。
  • 我在尝试运行时收到unknown option --verbosity。我试过dotnet --verbosity diag WebsiteMainDll.dlldotnet --verbosity=diag WebsiteMainDll.dll。我在帮助输出中看到了该选项,但它不会接受。
  • dotnet -d run WebsiteMainDll.dll 呢?
  • 在我尝试运行.csproj 而不是.dll 并发现NuGet 由于SSL 错误而无法恢复包后,我实际上发现了这个问题:github.com/dotnet/cli/issues/9391

标签: c# asp.net-core


【解决方案1】:

我发现这是由于某些本地 SSL 证书的权限问题。我觉得要么是 .NET SDK 更新在我的系统上安装了新的包,导致权限混乱,要么是新的 ASP.NET Core NuGet 包之一改变了在 Core 中处理 SSL 的方式。

我在这里找到了解决方案:https://github.com/dotnet/cli/issues/9391

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-10
    • 2018-11-30
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多