ASP.NET Core 設置運行端口,啟動多個服務實例


想要通過命令行方式運行ASP.NET Core,指定運行的端口號,該怎么做呢?

兩種方法:

第一種方法:通過配置文件指定端口

1.添加一個json配置文件,一般命名為 host.json,也可以使用默認配置文件 appsettings.json

  添加配置項,多個端口可以通過分號(;)隔開。

  "server.urls": "http://*:5025;http://*:5026"

2.修改 Program.cs 的 Main 方法,定義 ConfigurationBuilder 對象。

    public class Program
    {
        public static void Main(string[] args)
        {
            var config = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: true) .Build();

            CreateWebHostBuilder(args)
                .UseConfiguration(config)
                .Build()
                .Run();
        }

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

第二種方法:通過運行時參數指定端口號

1.添加引用:Microsoft.Extensions.Configuration.CommandLine

2.修改 Program.cs 的 Main 方法,定義 ConfigurationBuilder 對象。 

    public class Program
    {
        public static void Main(string[] args)
        {
            var config = new ConfigurationBuilder() .AddCommandLine(args) .Build();

            CreateWebHostBuilder(args)
                .UseConfiguration(config)
                .Build()
                .Run();
        }

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

 

 3.運行時指定參數:dotnet AspnetDockerTest.dll --server.urls "http://*:5005;http://*:5006"

思考:

指定運行端口號並不是我的目的,我在考慮,通過第二種,指定運行時參數來啟動服務的方式,我們可以對一個aspnet core程序啟動多個服務實例,只要端口號不同就行,這樣是不是更方便集群部署呢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM