为什么.net core 2.1 SPA有3个不同的端口?

时间:2018-06-28 02:03:13

标签: asp.net-core asp.net-core-2.1

我正在学习dotnet core 2.1 SPA,当我用donet core 2.1 SPA Angular运行dotnet run时,我注意到有3个不同的端口:

  1. https:localhost:5001
  2. http:localhost:5000
  3. http:localhost:34941

当我使用第二个URL时,它会自动重定向到第一个URL,并且出现安全错误。 对于第三个网址,它可以工作。我认为是因为它是针对客户端的,其中第一和第二网址将用于具有身份验证的API调用? 在现场环境中会发生什么?

Result from running <code>dotnet run</code>

Program.cs文件中的配置

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
}

1 个答案:

答案 0 :(得分:5)

5000和5001:Kestrel HTTP和HTTPS默认值

5000用于HTTP,5001用于HTTPS。这些是defaults in the ASP.NET Core Kestrel Server。由于您的启动类中有app.UseHttpsRedirection(),因此5000重定向到5001。

34941:NG Live开发服务器可用的任何端口

这是Microsoft.AspNetCore.SpaServices用于启动NG Live Development Server的任意可用端口。 Startup类中的spa.UseAngularCliServer(npmScript: "start")方法从start文件中调用package.json脚本,如下所示:

ng serve --extract-css "--port" "50415"`

它通过的端口是SpaServices当前找到的available port

另请参见