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

Asp.net core 为什么.net core 2.1 SPA有3个不同的端口?,asp.net-core,asp.net-core-2.1,Asp.net Core,Asp.net Core 2.1,我正在学习dotnet core 2.1 SPA,当我使用dotnet run运行dotnet core 2.1 SPA时,我注意到有3个不同的端口: https:localhost:5001 http:localhost:5000 http:localhost:34941 当我使用第二个url时,它只是自动重定向到第一个url,我得到了安全性错误。 对于第三个url,它是有效的。我认为这是因为它是针对客户端的,第一个和第二个url将用于带有身份验证的API调用? 在有生命的环境中会发生什么

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

  • https:localhost:5001
  • http:localhost:5000
  • http:localhost:34941
  • 当我使用第二个url时,它只是自动重定向到第一个url,我得到了安全性错误。 对于第三个url,它是有效的。我认为这是因为它是针对客户端的,第一个和第二个url将用于带有身份验证的API调用? 在有生命的环境中会发生什么

    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>();
    }
    
    公共类程序
    {
    公共静态void Main(字符串[]args)
    {
    CreateWebHostBuilder(args.Build().Run();
    }
    公共静态IWebHostBuilder CreateWebHostBuilder(字符串[]args)=>
    WebHost.CreateDefaultBuilder(args)
    .UseStartup();
    }
    
    5000和5001:Kestrel HTTP和HTTPS默认值 5000表示HTTP,5001表示HTTPS。那些是。5000重定向到5001,因为在启动类中使用了
    app.UseHttpsRedirection()

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

    ng serve --extract-css "--port" "50415"`
    
    它通过的端口是
    SpaServices
    当前找到的任何端口

    另见

    您正在运行哪些源代码?您可能需要检查program.cs文件。另外,粘贴
    CreateWebHostBuilder
    功能代码here@NevilleNazerane我刚刚更新了我的问题。谢谢你的解释。我们如何告诉SpaServices不要查找可用端口,而是设置默认端口?或者我们如何告诉visual studio在找到的端口中自动打开web浏览器?@statbodik,以防您仍然需要答案:您只需在ng服务中设置它,但在它之后添加“-port 4200&REM”&REM是一个DOS“命令”,它将其后面的所有内容都视为注释。所以你最终会得到类似“ng serve-port 4200&REM”的东西@MORTEMULDER谢谢你的解释!这是一个令人沮丧的问题。奇怪的是,为了手动设置一个端口,你不得不破解类似的东西。