访问linux托管的ASP.NET Core 2.x webapp(不带nginx)

问题描述 投票:0回答:2

我的ASP.NET Core 2.1 webapp在我的开发设置上完美运行。现在我想在生产中测试它。

生产服务器是Ubuntu 18.我跟着the instructions。我还不想设置nginx,只是做一些快速测试,说明说:

“无论是否配置了反向代理服务器,配置都是ASP.NET Core 2.0或更高版本应用程序的有效且受支持的托管配置”。

所以我建立并发布了我的项目:dotnet publish --configuration Release。然后在服务器上:

  • 安装dotnet运行时
  • 将文件复制到服务器(/var/www/myapp
  • 开放的港口:sudo uwf allow 5000/tcp 80/tcp
  • 运行dotnet MyApp.dll(也试过sudo dotnet MyApp.dll

它运行没有错误/警告,并说它正在听http://localhost:5000

在我的本地机器上,我尝试了http://serveripaddress(和http://serveripaddress:5000)但什么都没得到(“无法连接”)。我可以使用ssh,sftp等访问该服务器 - 只有http无效。

我究竟做错了什么?

asp.net ubuntu asp.net-core asp.net-core-2.1 kestrel-http-server
2个回答
2
投票

发现了问题。我需要使用:

sudo ASPNETCORE_URLS="http://0.0.0.0:5000" dotnet MyApp.dll

然后它记录Now listening on: http://0.0.0.0:5000。我可以从远程客户端访问它。


1
投票

主机默认绑定为127.0.0.1,因此您只能在本地访问该应用程序。如果你想从网络访问它,请添加--urls参数。例如 :

对于开发,您可以运行:

dotnet run --urls http://0.0.0.0:5000

对于已部署的项目,您可以运行:

dotnet MyApp.dll --urls http://0.0.0.0:5000

我使用的dotnet核心sdk是版本2.1.400。

© www.soinside.com 2019 - 2024. All rights reserved.