почему я получаю исключение при разрешении моего сервиса в методе Config? - PullRequest
0 голосов
/ 12 марта 2020

У меня есть проект WebApi, и это мой регистрационный код зависимости:

public  void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<MyDatabaseContext>(opt=> opt.UseSqlServer(Configuration.GetConnectionString("conStr")));
            services.RegisterEasyNetQ("host=localhost;username=admin;password=admin");
            services.AddTransient(typeof(CreateOrderHandler));
            services.AddTransient(typeof(OrderFinishedHandler));
            services.AddTransient(typeof(OrderPaidHandler));
            services.AddControllers();
        }

, и я разрешаю запуск этих служб сразу после запуска проекта с помощью этого кода:

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

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints => { endpoints.MapControllers(); });

            app.ApplicationServices.GetService(typeof(CreateOrderHandler));
            app.ApplicationServices.GetService(typeof(OrderPaidHandler));
            app.ApplicationServices.GetService(typeof(OrderFinishedHandler));

        }

этого кода работает правильно, когда я запускаю свой проект по команде do tnet, но когда я отлаживаю свой код в райдере, я получаю следующее исключение:

System.InvalidOperationException: Cannotize ' ApiProject.Order.CreateOrderHandler 'от root провайдера, поскольку для него требуется служба с областью действия' ApiProject.Order.MyDatabaseContext '.

...