我是一个非常新的.NET应用程序,所以这可能很容易解决。我之所以冒险进入这个世界,是因为我真的很想尝试Blazor。
我在AWS Lightsail上有一个Ubuntu服务器,我正在努力进行设置,以便开始实际编码。我安装了.NET Core 3.1(和.NET Runtime 3.1(,在/home中创建了一个名为DuckGoose的目录,并运行了dotnet new blazorserver
。最后,我运行了dotnet publish --configuration Release
。
根据这个,这就是我所需要的。
我转到发布文件夹并运行dotnet DuckGoose.dll
,应用程序就启动了。从这方面看一切似乎都很正常。
但是,当我转到http://lightsail_provided_ip:5000
时,服务器拒绝连接。我不知道为什么。
提前感谢你的帮助——我身处一个新的世界,我完全迷失了方向。
(我在Lightsail上有一个防火墙规则,允许通过TCP进入端口5000-5001(
注意:在我做这一切之前,我也运行过nginx,但我杀死了它,问题仍然存在。
问题是您的项目正在侦听环回地址,因此外部设备无法连接到侦听环回的服务。
有两种方法可以为云服务器修复此问题:
-
如果您打算使用Nginx,请配置您的Nginx为侦听环回地址的服务设置反向代理。您的链接有必要的说明供您进行设置。
-
您可以将环回地址更改为"0.0.0.0",这将使服务侦听所有地址。这可以通过转到您的项目目录,打开Properties文件夹,然后编辑launchSettings.json文件并更改以下行来完成:
"applicationUrl": "https://localhost:5001;http://localhost:5000",
至
"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。