访问Linux托管的ASP.NET Core 2.x Web应用程序(无nginx)

时间:2018-09-06 09:23:28

标签: asp.net ubuntu asp.net-core asp.net-core-2.1 kestrel-http-server

我的ASP.NET Core 2.1 Webapp可以在我的开发设置上完美运行。现在我要在生产中对其进行测试。

生产服务器是Ubuntu18。我关注了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无法正常工作。

我在做什么错了?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分: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。