1

我想使用本自述文件的“在 AWS Lambda 中重新加载”部分中记录的 WaitForSystemsManagerReloadToComplete() 扩展。

我相信我已经编写了正确的语法来调用它,但由于这不是一个简单的测试过程,我想确认语法。编码:

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

        public static IWebHostBuilder CreateWebHostBuilder(string[] args)
        {
            return WebHost.CreateDefaultBuilder(args)
                      .ConfigureAppConfiguration(builder =>
                      {
                          builder
                            .AddSystemsManager("/AppName")
                            .Build()
                            .WaitForSystemsManagerReloadToComplete(TimeSpan.FromSeconds(5));
                      })
                      .UseStartup<Startup>();
        }
 }

我担心的是,尽管我在 Lambda 表达式中调用了 WaitForSystemsManagerReloadToComplete(),但我想知道它是否会影响设计的执行线程。

4

1 回答 1

2

通过查看 Github 上的示例,我会说在表达式中调用它是错误的。您不必为了进行调用而在表达式中构建配置。而是将该代码移动到Startup并在那里调用它。

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

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) {
        return WebHost.CreateDefaultBuilder(args)
                  .ConfigureAppConfiguration(builder => {
                      builder.AddSystemsManager("/AppName");
                  })
                  .UseStartup<Startup>();
    }
}

启动

public class Startup {
    public Startup(IConfiguration configuration) {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services) {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

        //...
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
        if (env.IsDevelopment()) {
            app.UseDeveloperExceptionPage();
        }

        app.UseMvc();

        Configuration.WaitForSystemsManagerReloadToComplete(TimeSpan.FromSeconds(5));
    }
}
于 2019-05-30T23:31:38.300 回答