我的ASP.NET Core 2.1 webapp在我的开发设置上完美运行。现在我想在生产中测试它。
生产服务器是Ubuntu 18.我跟着the instructions。我还不想设置nginx,只是做一些快速测试,说明说:
“无论是否配置了反向代理服务器,配置都是ASP.NET Core 2.0或更高版本应用程序的有效且受支持的托管配置”。
所以我建立并发布了我的项目:dotnet publish --configuration Release
。然后在服务器上:
/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无效。
我究竟做错了什么?
发现了问题。我需要使用:
sudo ASPNETCORE_URLS="http://0.0.0.0:5000" dotnet MyApp.dll
然后它记录Now listening on: http://0.0.0.0:5000
。我可以从远程客户端访问它。
主机默认绑定为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。