.net Core添加命令行读取功能

集群是:多台服务器提供相同功能,增强处理能力和容错能力。所有多台服务器的程序都一样,但各台服务器IP不一样,端口也可能不一样,我们要把服务器IP和端口告诉Consul,在这里有两种方法

方法一(从命令行读取IP和端口)

在程序入口 Main方法里面添加命令行读取功能代码如下

public static void Main(string[] args)
{
    //这是添加命令行功能
    new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddCommandLine(args)
        .Build();

    CreateHostBuilder(args).Build().Run();
}

命令行读取IP和端口,在Startup类里面 方法
public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}

public IConfiguration Configuration { get; }

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
}

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    //DO..
    try
    {//
        string ip = Configuration["ip"];//这个一定要命令行启动,不然获取不到会报错
        int port = int.Parse(Configuration["port"]);
    }
    catch { }
}

命令行启动web服务样例 dotnet apiServerDemo.dll --urls="http://*:5004" --ip="127.0.0.1" --port=5004
apiServerDemo.dll 为web启动程序名

方法二(不建议用)

 我们可以把服务器IP和端口放在配置文件里面,然后告诉Consul,这样很台服务器去改配置文件很麻烦,并且容易错,

转载请保留原创地址http://www.luofenming.com/show.aspx?id=ART2019121700001

评论