为什么我的 .NET 应用不侦听 5000 端口?



我是一个非常新的.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,但我杀死了它,问题仍然存在。

问题是您的项目正在侦听环回地址,因此外部设备无法连接到侦听环回的服务。

有两种方法可以为云服务器修复此问题:

  1. 如果您打算使用Nginx,请配置您的Nginx为侦听环回地址的服务设置反向代理。您的链接有必要的说明供您进行设置。

  2. 您可以将环回地址更改为"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。

相关内容

  • 没有找到相关文章

最新更新