ASP.NET Core应用只能在root用户下运行

3
我刚刚将我的ASP.NET Core应用程序上的所有Microsoft软件包更新到最新的2.1版本(以及在我的CentOS服务器上将SDK更新到2.1.4),并将代码推送到服务器。我在服务器端重新构建了代码并将其部署到Web根目录。除非以root身份运行,否则我无法让服务器响应。当尝试通过Apache代理连接时,我会收到502代理错误,并且当我尝试直接连接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,看看是否可以获得更多信息。 - ProgrammingLlama
当我尝试运行时,只是出现了“未知选项--verbosity”的错误。我尝试了“dotnet --verbosity diag WebsiteMainDll.dll”和“dotnet --verbosity=diag WebsiteMainDll.dll”。我在帮助输出中看到了该选项,但它不起作用。 - Arcanox
dotnet -d run WebsiteMainDll.dll 是什么意思? - ProgrammingLlama
我实际上是在尝试运行.csproj而不是.dll后发现了问题,并发现由于SSL错误,NuGet无法恢复包:https://github.com/dotnet/cli/issues/9391 - Arcanox
1个回答

2
我发现这是由于一些本地SSL证书的权限问题导致的。我感觉可能是.NET SDK更新在我的系统上安装了新的包并搞乱了权限,或者其中一个新的ASP.NET Core NuGet包改变了Core中处理SSL的方式。
我在这里找到了解决方法:https://github.com/dotnet/cli/issues/9391

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接