Open Closed

No BLOB Storage provider was registered and cli add-module fails #1569


User avatar
0
  • ABP Framework version: v4.4.0 RC2
  • UI type: MVC
  • DB provider: EF Core (Unified)
  • Tiered (MVC) or Identity Server Separated (Angular): Tiered
  • Exception message and stack trace:

Volo.Abp.AbpException: No BLOB Storage provider was registered! At least one provider must be registered to be able to use the Blog Storing System. at Volo.Abp.BlobStoring.DefaultBlobProviderSelector.Get(String containerName) at Volo.Abp.BlobStoring.BlobContainerFactory.Create(String name) at Volo.Abp.BlobStoring.BlobContainerFactoryExtensions.Create[TContainer](IBlobContainerFactory blobContainerFactory) at Volo.Abp.BlobStoring.BlobContainer`1..ctor(IBlobContainerFactory blobContainerFactory) at lambda_method1856(Closure , Object[] ) at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate()

  • Steps to reproduce the issue:"
  1. Start with a tiered MVC unified EFCore project, like https://community.abp.io/articles/unifying-dbcontexts-for-ef-core-removing-the-ef-core-migrations-project-nsyhrtna
  2. Attempt to add the module for db blob storage:

C:\Users\kfrancis\Projects\MysteryProject\aspnet-core>abp add-module Volo.Abp.BlobStoring.Database [16:16:40 INF] ABP CLI (https://abp.io) [16:16:41 INF] Version 4.4.0-rc.2 (Prerelease) [16:16:42 INF] Installing module 'Volo.Abp.BlobStoring.Database' to the solution 'MysteryProject' Build started... Build failed. Use dotnet build to see the errors. Reinforced.Typings.settings.xml : warning : Reinforced.Typings will not run because it is disabled in its configuration [C:\Users\kfrancis\Projects\MysteryProject\aspnet-core\src\MysteryProject.Domain.Shared\MysteryProject.Domain.Shared.csproj] [16:16:51 INF] Started database migrations... [16:16:51 INF] Migrating schema for host database... [16:16:52 INF] Executing host database seed... [16:16:55 INF] Successfully completed host database migrations. [16:16:55 INF] Executing default tenant database seed... [16:16:55 INF] Successfully completed default tenant database migrations. [16:16:55 INF] Successfully completed all database migrations. [16:16:55 INF] You can safely end this process...

  1. Attempt to add it manuallly, but the tables related to the database storage aren't being added when I do add-migration

11 Answer(s)
  • User Avatar
    0

    dotnet build runs without error as well, so the abp add-module failure I can't figure out why it's failing. There's no verbose mode for the add-module command.

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    Hi,

    I will check it out.

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    Hi,

    I can't reproduce the problem, can you share a project to reproduce? thanks. shiwei.liang@volosoft.com

  • User Avatar
    0

    So, I've been trying to re-create the issue but I haven't yet found a set of steps useful.

    I'm wondering if it's due to us adding the CmsPro kit module before this. Is there an order that is important?

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    Hi,

    Seems you need to add the module manually.

    Install

    Volo.Abp.BlobStoring.Database.Domain.Shared, Volo.Abp.BlobStoring.Database.Domain Volo.Abp.BlobStoring.EntityFrameworkCore

    to Domain.Shared, Domain and EntityFrameworkCore project.

    [DependsOn(typeof(BlobStoringDatabaseDomainModule))]
    public class ...DomainModule : AbpModule
        ....
    
    [DependsOn(typeof(BlobStoringDatabaseEntityFrameworkCoreModule))]
    public class ...EntityFrameworkCoreModule : AbpModule
        ....
    

    Open ...DbContext class

    protected override void OnModelCreating(ModelBuilder builder)
    {
        .......
    
        builder.ConfigureBlobStoring();
    }
    

    Then Add & Apply migrations.

  • User Avatar
    0

    All of those things are in place, and I've done them again with no success. Also, when I go to add a migration - it's empty and I can see that it's because the blob related tables are in from when I added CmsKitPro.

    Can I email you? Since I can't produce this on a new project.

  • User Avatar
    0

    Here's the related code:

    Domain

    [DependsOn(
            typeof(CabMDDomainSharedModule),
            typeof(AbpAuditLoggingDomainModule),
            typeof(AbpBackgroundJobsDomainModule),
            typeof(AbpFeatureManagementDomainModule),
            typeof(AbpIdentityProDomainModule),
            typeof(AbpPermissionManagementDomainIdentityModule),
            typeof(AbpIdentityServerDomainModule),
            typeof(AbpPermissionManagementDomainIdentityServerModule),
            typeof(AbpSettingManagementDomainModule),
            typeof(SaasDomainModule),
            typeof(TextTemplateManagementDomainModule),
            typeof(LeptonThemeManagementDomainModule),
            typeof(LanguageManagementDomainModule),
            typeof(VoloAbpCommercialSuiteTemplatesModule),
            typeof(AbpEmailingModule),
            typeof(BlobStoringDatabaseDomainModule),
            typeof(AbpPaymentDomainModule),
            typeof(AbpPaymentPayuDomainModule),
            typeof(AbpPaymentTwoCheckoutDomainModule),
            typeof(FileManagementDomainModule), 
            typeof(DocsDomainModule),
            typeof(CmsKitProDomainModule)
            )]
        public class CabMDDomainModule : AbpModule
        {
            // lots of code
        }
    

    EfCore (Unified)

    [DependsOn(
            typeof(CabMDDomainModule),
            typeof(AbpIdentityProEntityFrameworkCoreModule),
            typeof(AbpIdentityServerEntityFrameworkCoreModule),
            typeof(AbpPermissionManagementEntityFrameworkCoreModule),
            typeof(AbpSettingManagementEntityFrameworkCoreModule),
            typeof(AbpEntityFrameworkCoreSqlServerModule),
            typeof(AbpBackgroundJobsEntityFrameworkCoreModule),
            typeof(AbpAuditLoggingEntityFrameworkCoreModule),
            typeof(AbpFeatureManagementEntityFrameworkCoreModule),
            typeof(LanguageManagementEntityFrameworkCoreModule),
            typeof(SaasEntityFrameworkCoreModule),
            typeof(TextTemplateManagementEntityFrameworkCoreModule),
            typeof(BlobStoringDatabaseEntityFrameworkCoreModule),
            typeof(AbpPaymentEntityFrameworkCoreModule),
            typeof(FileManagementEntityFrameworkCoreModule),
            typeof(DocsEntityFrameworkCoreModule),
            typeof(CmsKitProEntityFrameworkCoreModule)
            )]
        public class CabMDEntityFrameworkCoreModule : AbpModule
        {
            // lots of code
        }
    

    Unified DbContext:

    protected override void OnModelCreating(ModelBuilder builder)
            {
                base.OnModelCreating(builder);
    
                /* Include modules to your migration db context */
    
                builder.ConfigurePermissionManagement();
                builder.ConfigureSettingManagement();
                builder.ConfigureBackgroundJobs();
                builder.ConfigureAuditLogging();
                builder.ConfigureIdentityPro();
                builder.ConfigureIdentityServer();
                builder.ConfigureFeatureManagement();
                builder.ConfigureLanguageManagement();
                builder.ConfigureSaas();
                builder.ConfigureTextTemplateManagement();
                builder.ConfigureCmsKitPro();
                builder.ConfigureBlobStoring();
                builder.ConfigurePayment();
                builder.ConfigureFileManagement();
                builder.ConfigureDocs();
    
                /* Configure the shared tables (with included modules) here */
    
                //builder.Entity<IdentityUser>(b =>
                //{
                //    b.ToTable(AbpIdentityDbProperties.DbTablePrefix + "Users"); //Sharing the same table "AbpUsers" with the IdentityUser
    
                //    b.ConfigureByConvention();
                //    b.ConfigureAbpUser();
    
                //    /* Configure mappings for your additional properties.
                //     * Also see the CabMDEfCoreEntityExtensionMappings class.
                //     */
                //});
    
                /* Configure your own tables/entities inside the ConfigureCabMD method */
    
                builder.ConfigureCabMD();
            }
    

    I'll note also that the abp suite refuses to bring up modules and the abp add-module command says it's failing but provides no information. Is there a way to get more verbose information from the CLI there?

  • User Avatar
    0
    alper created
    Support Team Director

    can you check out this https://support.abp.io/QA/Questions/529/ABP-Upgrade-from-310-to-330#answer-0d9caf26-c6bd-b4f8-30cd-39f8a0144ec0

  • User Avatar
    0
    ServiceBot created
    Support Team Automatic process manager

    This question has been automatically marked as stale because it has not had recent activity.

  • User Avatar
    0

    The issue still persists and we're on v5.0.0 RC1 now. The last article made no difference either, all of those things were already in place.

  • User Avatar
    0
    gterdem created
    Senior .NET Developer

    Can you provide steps to reproduce the problem?

Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
Do you need assistance from an ABP expert?
Schedule a Meeting
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v9.2.0-preview. Updated on March 18, 2025, 10:42