Amazon web services 为什么不是';我的.NET应用程序是否正在侦听5000端口?

Amazon web services 为什么不是';我的.NET应用程序是否正在侦听5000端口?,amazon-web-services,razor,.net-core,ubuntu-16.04,amazon-lightsail,Amazon Web Services,Razor,.net Core,Ubuntu 16.04,Amazon Lightsail,我是一个非常新的.NET应用程序,所以这很容易修复。我之所以冒险进入这个世界,是因为我真的想尝试一下Blazor 我在AWS Lightsail上有一个Ubuntu服务器,我正在尝试进行设置,以便开始实际编码。我安装了.NET Core 3.1(和.NET Runtime 3.1),在/home中创建了一个名为DuckGoose的目录,并运行了dotnet new blazorserver。最后,我运行了dotnetpublish--configurationrelease 据我所知,这就是我所

我是一个非常新的.NET应用程序,所以这很容易修复。我之所以冒险进入这个世界,是因为我真的想尝试一下Blazor

我在AWS Lightsail上有一个Ubuntu服务器,我正在尝试进行设置,以便开始实际编码。我安装了.NET Core 3.1(和.NET Runtime 3.1),在/home中创建了一个名为DuckGoose的目录,并运行了
dotnet new blazorserver
。最后,我运行了
dotnetpublish--configurationrelease

据我所知,这就是我所需要的

我转到发布文件夹并运行了
dotnet DuckGoose.dll
,应用程序启动了。从这方面看,一切都很正常

但是,当我转到
http://lightsail_provided_ip:5000
,服务器拒绝连接。我不知道为什么

提前感谢你的帮助-我在一个新的世界里,我完全迷失了方向

(我在Lightsail上有一个防火墙规则,允许通过TCP向端口5000-5001发送入站流量)


注意:在执行所有这些操作之前,我还运行了nginx,但我将其终止,问题仍然存在。

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

有两种方法可以解决云服务器的此问题:

  • 如果您打算使用Nginx,请配置Nginx,为正在侦听环回地址的服务设置反向代理

  • 您可以将环回地址更改为“0.0.0.0”,这将使服务侦听所有地址。这可以通过转到项目目录,打开Properties文件夹,然后编辑launchSettings.json文件并更改以下行来完成:

  • “应用程序URL”:https://localhost:5001;http://localhost:5000“,

    “应用程序URL”: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更容易。

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

    有两种方法可以解决云服务器的此问题:

  • 如果您打算使用Nginx,请配置Nginx,为正在侦听环回地址的服务设置反向代理

  • 您可以将环回地址更改为“0.0.0.0”,这将使服务侦听所有地址。这可以通过转到项目目录,打开Properties文件夹,然后编辑launchSettings.json文件并更改以下行来完成:

  • “应用程序URL”:https://localhost:5001;http://localhost:5000“,

    “应用程序URL”: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通常更容易。

    端口80,而不是5000。@HansPassant Everywhere我发现它说的是5000,包括在项目配置文件中?不管怎样,我尝试使用80,但仍然拒绝连接(除非nginx处于打开状态)端口80,而不是5000。@HansPassant Everywhere我发现它说的是5000,包括在项目配置文件中?无论如何,我尝试了80,但仍然拒绝连接(除非nginx已打开)