Activities of "chrisalves"

Hi Engincan,

Thank you for your response.

Let’s keep this ticket open for a few more days while I review the point and run some test scenarios based on your suggestions.

Best regards,

Hi Engincan,

Thank you for your last advice and explanation.

Considering I’m developing a multi-tenant modular monolith application using ABP.io (Blazor Server + EF Core) having the entities and initial CRUD created by ABP Suite, organized into three modules and several entities. My project needs to manage file uploads for multiple entities across these modules, supporting multiple tenants.

From my research and reviewing ABP.io’s default implementation as you mentioned in this support Ticket, I’ve noticed that when a File property is added to an entity, the framework generates a separate file container for each entity, defaulting to the database provider. For my application, this results in many containers and duplicated file management logic within each entity’s AppService.

Instead, I’d like to use Azure BlobStore as the provider, centralizing all file uploads for all tenants into a single container. My plan is to organize files using subdirectories in the following structure: Tenant/Module/Entity/Property This would ensure tenant isolation, logical organization, and easier management—while also keeping things DRY and maintainable.

As I believe the Architeture proposed by ABP represents a good choice to follow, I would appreciate your advice on these points:

1) Recommended Approach in ABP Framework: What is the best practice in ABP to use a single Azure Blob Storage container for all file properties, with subdirectory separation by tenant, module, entity, and property?

2) Centralized Configuration: How can I centralize the file container configuration so that all file uploads (across tenants, modules, and entities) are consistent, easy to maintain, and avoid duplication?

3) Overriding ABP Suite’s Scaffolding: Is there a supported way to override or customize ABP Suite’s default file management scaffolding to generate this centralized logic? If not, what’s the best way to approach it?

4) Manual Implementation and Best Practices: If this structure needs to be implemented manually, what is the recommended way to organize the code/services to keep things DRY, robust, and extensible for future needs?

The documentation is unprecise on these points—especially regarding on centralization of Azure BlobStore configuration and multi modules scenarios. Any code samples, design suggestions, or documentation references would be greatly appreciated.

Thank you very much for your help!

Hi Engincan,

Thank you for your response.

Let’s keep this ticket open for a few more days while I review the point and run some test scenarios based on your suggestions.

Best regards,

I've successfully implemented the configuration for Azure Blob Storage as described in the official documentation. However, my question is more focused on the architectural design required to make this integration scalable and efficient across all modules of my solution.

Specifically, I'm looking to understand:

  • What is the recommended architecture to fully integrate Azure Blob Storage with the file handling components generated by ABP Suite?
  • Where in the code generated by ABP Suite (especially in Razor Pages and related file components) should I replace or extend the default logic to redirect file uploads from local database storage to Azure Blob Storage?
  • Is it advisable to create a centralized service or abstraction layer to manage blob operations across modules? If so, what would be the best practice for implementing this in a modular and maintainable way?

The documentation provides a good starting point for configuring blob storage, but it doesn't clearly outline how to adapt the ABP Suite-generated file logic to use Azure Blob Storage as the primary storage backend.

I would greatly appreciate any guidance or examples that clarify the best approach to achieve this integration in a clean and scalable manner.

Thank you!

Hi EngincanV,

Thanks so much for your prompt response—the workaround worked perfectly. The ABP team truly are experts!

To streamline development, I’m keeping customizations to a minimum and relying on built-in features whenever possible.

Could you please confirm the version in which this fix will be included, and proceed with refunding the credit for this support ticket?

Appreciate your help, and hope you have a great day!

Hi Support Team,

The A.I. answer above provided a reference to a similar situation but it is an 1 year more ticket on a older ABP version as below

Please provide an workaround to apply on my project as it is a BUG unfixed yet to help me move forward with this development.

Hi @m.aliozkaya, The workaround you suggested worked perfectly—thank you! I’ve also gone ahead and addressed similar issues in related child entities. Please keep me posted on when the definitive fix will be available. Once the bug is officially confirmed, I’d appreciate it if the credit consumed by this ticket could be reverted. Thanks a million for your continued support!

Nice! I will update the code on my end and try again, hopping this will fix it.

I'll let you know after my testing here.

Thank you for your assistance.

Hi ! Thank you for assistance.

Can you please confirm the content of the profile file after I applied your suggestion just to let me know If I'm doing right ?

Hi @m.aliozkaya,

Thank you for your assistance.

Our solution is working correctly so far with three entities as you could confirm in the previos message:

Product (master entity)

PricingList (master entity)

PricingListItem (child entity linked to PricingList)

At this stage, the PricingListItem entity contains only two properties: Currency and Price. Everything runs smoothly up to this point.

I’ve now added a new commit to the branch, where I introduce a Navigation Property in the PricingListItem entity pointing to ProductId from the Product entity, using ABP Suite 9.2.0. You can check the latest commit on the branch for details.

Here’s what I did and what I observed:

Added the Navigation Property to PricingListItem (ProductId).

ABP Suite generated the updated code successfully.

Applied the migration successfully.

Ran DbMigrator without errors.

Reloaded the solution successfully.

The solution started launching the services.

However, after this change, the HttpApi.Host service hangs indefinitely when running in ABP Studio. As a consequence, the other dependent services also hang due to the unavailability of HttpApi.Host.

To investigate further, I stopped the service in ABP Studio and ran it manually from the terminal to check the logs (see attached screenshot for details).

Summary of modified files:

Could you please help me identify why introducing the Navigation Property causes the service to hang?

Thank you very much for your support!

Showing 1 to 10 of 39 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on October 30, 2025, 06:33