ABP Framework version: v7.0.1
UI type: MVC
DB provider: EF Core
Tiered (MVC) or Identity Server Separated (Angular): no (single-layer)
Exception message and stack trace: D:\Source\Repos\Pentapack.MRS\Pentapack.MRS>dotnet run --migrate-database [07:48:15 FTL] Pentapack.MRS terminated unexpectedly! Autofac.Core.DependencyResolutionException: An exception was thrown while activating Pentapack.MRS.Data.MRSDbMigrationService. ---> Autofac.Core.DependencyResolutionException: None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'Pentapack.MRS.Data.MRSDbMigrationService' can be invoked with the available services and parameters: Cannot resolve parameter 'Volo.Saas.Tenants.ITenantRepository tenantRepository' of constructor 'Void .ctor(Volo.Abp.Data.IDataSeeder, Pentapack.MRS.Data.MRSEFCoreDbSchemaMigrator, Volo.Saas.Tenants.ITenantRepository, Volo.Abp.MultiTenancy.ICurrentTenant)'. at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass12_0.<UseSingleConstructorActivation>b__0(ResolveRequestContext ctxt, Action
1 next) at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action
1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) at Autofac.Builder.RegistrationBuilder
3.<>c__DisplayClass41_0.<PropertiesAutowired>b__0(ResolveRequestContext ctxt, Action1 next) at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action
1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action1 next) --- End of inner exception stack trace --- at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action
1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action
1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) at Autofac.Core.Container.ResolveComponent(ResolveRequest request) at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable
1 parameters, Object& instance) at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable1 parameters) at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable
1 parameters) at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) at Pentapack.MRS.Program.Main(String[] args) in D:\Source\Repos\Pentapack.MRS\Pentapack.MRS\Program.cs:line 46Steps to reproduce the issue:" Executing dotnet run --migrate-database
13 Answer(s)
-
0
-
0
Hi, Even I tried with a new project and it works fine. But my existing project throws such exception and not sure why does that happens. Any idea what could be the issue?
-
0
And also this is another exception I'm facing while executing Add-Migration command.
PM> Add-Migration 'Initial' Build started... Build succeeded. [08:20:54 FTL] Pentapack.MRS terminated unexpectedly! Microsoft.Extensions.Hosting.HostAbortedException: The host was aborted. at Microsoft.Extensions.Hosting.HostFactoryResolver.HostingListener.ThrowHostAborted() at Microsoft.Extensions.Hosting.HostFactoryResolver.HostingListener.OnNext(KeyValuePair`2 value) at System.Diagnostics.DiagnosticListener.Write(String name, Object value) at Microsoft.Extensions.Hosting.HostBuilder.ResolveHost(IServiceProvider serviceProvider, DiagnosticListener diagnosticListener) at Microsoft.Extensions.Hosting.HostApplicationBuilder.Build() at Microsoft.AspNetCore.Builder.WebApplicationBuilder.Build() at Pentapack.MRS.Program.Main(String[] args) in D:\Source\Repos\Pentapack.MRS\Pentapack.MRS\Program.cs:line 41
-
0
It's a DI problem, looks like one of your services is not registered with the container.
Some possible reasons:
- You didn't add the
DbSet
to the database context for your entity. - You miss the Dependency Interfaces for your own service
Dependency Injection document: https://docs.abp.io/en/abp/latest/Dependency-Injection
You can share the project with me if you still not found the problem, I will check it. shiwei.liang@volosoft.com
- You didn't add the
-
0
Hi,
I could resolve this exception "Microsoft.Extensions.Hosting.HostAbortedException". But couldn't find any clue on "Autofac.Core.DependencyResolutionException: An exception was thrown while activating Pentapack.MRS.Data.MRSDbMigrationService."
-
0
Can you please check you mail box
-
0
Hi,
Please add these module dependencies to
MRSModule
// Saas Management module packages typeof(SaasHostWebModule), typeof(SaasHostHttpApiModule), typeof(SaasHostApplicationModule), typeof(SaasEntityFrameworkCoreModule)
BTW, I guess you don't want to include the SaasModule in your project. if so, you don't need to add module dependencies. but you should remove all
ITenantRepository
uses.Update the
MRSDbMigrationService
class.public class MRSDbMigrationService : ITransientDependency { public ILogger<MRSDbMigrationService> Logger { get; set; } private readonly IDataSeeder _dataSeeder; private readonly MRSEFCoreDbSchemaMigrator _dbSchemaMigrator; public MRSDbMigrationService( IDataSeeder dataSeeder, MRSEFCoreDbSchemaMigrator dbSchemaMigrator) { _dataSeeder = dataSeeder; _dbSchemaMigrator = dbSchemaMigrator; Logger = NullLogger<MRSDbMigrationService>.Instance; } public async Task MigrateAsync() { var initialMigrationAdded = AddInitialMigrationIfNotExist(); if (initialMigrationAdded) { return; } Logger.LogInformation("Started database migrations..."); await MigrateDatabaseSchemaAsync(); await SeedDataAsync(); Logger.LogInformation($"Successfully completed host database migrations."); Logger.LogInformation("You can safely end this process..."); } ......... }
Add the following code to
Program
classif (IsMigrateDatabase(args)) { builder.Services.AddDataMigrationEnvironment(); }
-
0
Hi, Thanks it fixed that issue and now I'm able to migrate.
But I have one issue while migration, that is I'm trying to create db and tables with default data on deployment by implementing the below code on OnApplicationInitialization in module file,
var dbContext = serviceScope.ServiceProvider.GetRequiredService<MRSDbContext>(); dbContext.Database.EnsureCreated();
It is creating db and their respective tables, but data seeding is not happening. User table looks empty.
-
0
Hi,
You need to use the data seeding system to initial data: https://docs.abp.io/en/abp/latest/Data-Seeding
-
0
I have implemented data seeding using IDataSeedContributor and it is working fine with ./migrate-database.
But I'm looking to migrate on runtime while deploying using the below code,
var dbContext = serviceScope.ServiceProvider.GetRequiredService<MRSDbContext>(); dbContext.Database.EnsureCreated();
It is creating db and table, but not data.
Any suggestions on this?
-
0
Hi,
Try
await serviceScope.ServiceProvider.GetRequiredService<MRSDbMigrationService>().MigrateAsync();
-
0
-
0
Hi,
I think your main problem has been solved and the new problem is not related to this.
Could you create a new question? thanks.