在未达到Run()之后的Program.cs中的代码

时间:2017-11-01 05:42:21

标签: c# asp.net-core-mvc asp.net-core-2.0

在MVC Core 2.0中,建议(asp-net-core-2-seed-database)db-seeding和其他初始化(从EF工具开始时不应运行)放在Program.cs Main方法之间调用BuildWebHost和Run之间

为了启动队列处理器单例,我的Main看起来像这样:

    public static void Main(string[] args)
    {
        var host = BuildWebHost(args);
        DocumentCreateQueueProcessor qProcessor;
        using (var scope = host.Services.CreateScope())
        {
            var services = scope.ServiceProvider;
            var config = services.GetRequiredService<IConfiguration>();
            qProcessor = new DocumentCreateQueueProcessor(config.GetConnectionString("DefaultConnection"));
        }
        try
        {
            host.Run();
        }
        finally
        {
            qProcessor = null;
        }
    }

我的队列处理器实现了IDisposable并使用了canceltoken来取消正在运行的线程。 起初我刚刚在host.Run()之后添加了nulling但是我发现在语句上设置一个断点时,在通过在VS中按F5使用IISExpress调试项目时从未达到该断点。 我将try / finally添加到Run语句中,但仍未达到断点。

解决这个问题的正确方法是什么?我的代码是否真的没有达到,或者只是调试器在我关闭IISExpress浏览会话时卸载。

0 个答案:

没有答案