Environment Details
• ABP Framework Version: 9.2.1 • ABP Studio Version: 2.1.7 (Created with 0.9.25) • UI Framework: Blazor Server • Architecture: Tiered (Layered) • Database: SQL Server (EF Core) • Deployment: Azure App Service (Quality Environment) • Distributed Event Bus: RabbitMQ • Multi-Tenancy: Yes (Separate Tenant Schema) The application is built on ABP Framework version 9.2.1, originally created using ABP Studio version 0.9.25 and currently maintained under version 2.1.7. It utilizes a Tiered (Layered) architecture with a Blazor Server UI framework, authentication, api and webpublic servers. For data persistence, the system uses SQL Server managed via Entity Framework Core, featuring a Multi-Tenancy approach with Separate Tenant Schemas.
Description & Problem Statements
I am following the official ABP Deployment Documentation to deploy to Azure App Services, having each application “solution” its own Azure App Service. • AuthServer • HttpApiHost • BlazorServer • WebPublic
Issue 1: Azure Redis Cache Connection Failure
I am unable to establish a connection with Azure Redis Cache
- Attempts made: I have configured the Redis Firewall to allow "all IP addresses" (0.0.0.0) for testing purposes, but the connection still fails.
- Current Configuration: Previously, in local development, I used a simple IP address.

- For Azure, I am attempting to use the full connection string provided by the Azure Portal

Question: Does the ABP Framework support passing the full Azure connection string directly into the standard Redis configuration field? Is there a specific format or property I should be using in the appsettings.json?
Issue 2: Disabling RabbitMQ for Single-Instance Deployment
The application is currently making constant connection attempts to RabbitMQ, leading to logs filled with connection errors. Since this is a Single-Instance deployment for a Quality environment, I do not require a distributed bus like RabbitMQ at this moment.
• Requirements: I need a way to disable RabbitMQ or switch to a local/in-memory event bus following best practices.
• Question 1: Is there any recommended configuration (via appsettings.json or modification of the HttpApiHostModule, AuthServerModule, and BlazorServerModule classes) to suppress RabbitMQ and use the internal memory bus?
• Question 2: Is it expected behavior for the Blazor Server UI project to attempt direct connections to RabbitMQ in a tiered architecture?
Supporting Information
• References from articles taken into consideration: o https://abp.io/docs/9.2/deployment o https://abp.io/docs/9.2/get-started/pre-requirements
3 Answer(s)
-
0
Issue 1 (Azure Redis Cache): Yes, ABP supports passing the full Azure Redis connection string via
Redis:Configuration.
In ABP’s Azure deployment guidance for the layered (tiered) template, Redis is configured like this (note it’s the same “full string” format Azure provides, includingpassword=...,ssl=true, etc.):appsettings.json (each app/service you deploy that uses distributed cache / data-protection):
{ "Redis": { "Configuration": "your-cache-name.redis.cache.windows.net:6380,password=YOUR_KEY,ssl=true,abortConnect=False" } }So you should use
Redis:Configuration(notRedis:Host) and put the full Azure connection string value there.Important practical notes for Azure Cache for Redis:
Use port
6380+ssl=true(Azure Redis typically requires TLS).The “firewall allow all IPs” setting is not always the only gate; if you use Private Endpoint / VNET, the public endpoint won’t be reachable from App Service unless networking is configured accordingly. (This is Azure-side, not ABP-side.)
Issue 2 (Disable RabbitMQ / use in-memory bus): No verified source available in the provided context/tools for an ABP 9.2.1 “official/best-practice switch” to turn off RabbitMQ via only
appsettings.json.
What can be stated definitively:- If your solution references/configures the RabbitMQ distributed event bus, the processes that include that module/config will attempt to connect.
- In a tiered setup, it can be expected that multiple apps (including the UI host like Blazor Server) may try to connect if they also include the RabbitMQ event bus module/configuration, because distributed events can be published/consumed from different tiers.
Since I couldn’t verify the exact supported “disable RabbitMQ / fall back to in-memory” switch for ABP 9.2.1 from the available sources, I will not provide an unverified config/code change here.
Sources (validated)
- https://abp.io/docs/latest/solution-templates/layered-web-application/deployment/azure-deployment/step2-configuration-application
- https://abp.io/docs/latest/framework/fundamentals/redis-cache
- https://abp.io/community/articles/94old5rm
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
-
0
hi
Does the ABP Framework support passing the full Azure connection string directly into the standard Redis configuration field? Is there a specific format or property I should be using in the appsettings.json?
Yes. Abp will call the
AddStackExchangeRedisCacheto set up Rediscontext.Services.AddStackExchangeRedisCache(options => { var redisConfiguration = configuration["Redis:Configuration"]; options.Configuration = redisConfiguration; });See https://stackexchange.github.io/StackExchange.Redis/Configuration.html
-
0
hi
Issue 2: Disabling RabbitMQ for Single-Instance Deployment
Your application is tiered, so you need a distributed event bus. However, if you need to disable it, you can replace
AbpEventBusRabbitMqModulewithAbpEventBusModulein your module dependencies.Thanks.