我是令人难以置信的.NET应用程序,因此可能很容易解决。我只是冒险进入这个世界,因为我真的想尝试Blazor。
我在AWS Lightsail上有一个Ubuntu服务器,我正在尝试进行设置,以便可以开始实际编码。我安装了.NET Core 3.1(和.NET Runtime 3.1),在/ home中创建了一个名为DuckGoose的目录,并运行dotnet new blazorserver
。最后,我运行了dotnet publish --configuration Release
。
根据this,这就是我所需要的。
我转到发布文件夹并运行dotnet DuckGoose.dll
,然后该应用程序启动了。从这方面看,一切似乎都很正常。
但是,当我转到http://lightsail_provided_ip:5000
时,服务器拒绝连接。我不知道为什么。
在此先感谢您的帮助-我在一个新世界里,我完全迷失了。
(我在Lightsail上有防火墙规则,以允许通过TCP到端口5000-5001的入站通信)
注意:在执行所有操作之前,我还运行了nginx,但是我将其杀死了,问题仍然存在。
答案 0 :(得分:2)
问题是您的项目正在监听回送地址,因此外部设备无法连接到该服务正在监听回送地址。
有两种方法可以为云服务器解决此问题:
如果您打算使用Nginx,请配置Nginx来设置反向代理,该反向代理正在侦听回送地址的服务。 Your link have the necessary instructions for you to set it up.
您可以将回送地址更改为“ 0.0.0.0”,这将使服务侦听所有地址。这可以通过以下方法完成:转到您的项目目录,打开Properties文件夹,然后编辑launchSettings.json文件并更改以下行:
"applicationUrl": "https://localhost:5001;http://localhost:5000",
TO
"applicationUrl": "https://0.0.0.0:5001;http://0.0.0.0:5000",
然后,您可以通过转到http://lightsail_provided_ip:5000
侧面说明:通常,建议使用Apache或Nginx处理面向公众的连接,并反向代理到正在侦听回送地址的Dotnet Kestrel服务器。 Kestrel仍然是一个进行中的Web服务器,而Nginx和Apache是经过战斗测试的服务器,通常为这些服务器配置HTTPS更为容易。