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

gre*_*nes 8 asp.net-core asp.net-core-2.1

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

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

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

运行<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>();
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*tin 7

5000和5001:Kestrel HTTP和HTTPS默认值

5000用于HTTP,5001用于HTTPS.这些是ASP.NET Core Kestrel Server中的默认值.由于app.UseHttpsRedirection()你的Startup类,5000重定向到5001 .

34941:NG Live Development Server的任何可用端口

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

ng serve --extract-css "--port" "50415"`
Run Code Online (Sandbox Code Playgroud)

它传递的端口SpaServices查找的任何当前可用端口.

也可以看看

  • 感谢您的大力支持。我们如何告诉 SpaServices 不要寻找可用端口,而是设置默认端口?或者我们如何告诉 Visual Studio 在找到的端口中自动打开 Web 浏览器? (2认同)
  • @StavBodik如果您仍然需要答案:您可以在ng服务中简单地设置它,但是在它后面添加“ -port 4200&REM”。&REM是DOS的“命令”,将其后的所有内容都视为注释。因此,您最终会得到类似“ ng serve -port 4200&REM”的信息 (2认同)