We ran into an issue in our hosted environment where multiple users calling /Account/ResetPassword caused SQL connections to stay idle in the connection pool instead of being released.
During user onboarding, we require all users of a tenant to reset their password. After a recent onboarding, we saw a spike in usage of the Identity and Authentication server. Both share the Identity database connection string (from the ABP microservice template).
Over a period of time, the session count on the Identity database kept increasing without ever going down. This build-up eventually exhausted the connection pool and broke our app until we restarted it.
What we saw:
Every call to /Account/ResetPassword runs a query that gets translated to SQL like this:
Even under low usage, sessions used by this query remain idle for extended periods instead of being released back to the pool.
Impact:
/Account/ResetPassword cause sessions to accumulate.Repro steps: I was able to reproduce this locally on SQL Server by:
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool.
This may have occurred because all pooled connections were in use and max pool size was reached.
Is there a way to prevent this issue without having to raise our database limits?
thanks
Hello,
We’re attempting to use isolated CSS files for our Blazor components, but it appears not to work correctly when the WASM loads.
Steps to reproduce:
Is there something missing in the startup configuration?
Thanks in advance!
Hello,
I have a blazor web app solution based on the microservice template.
I'm trying to check if a feature is enabled or not within one of my custom microservice but the feature value does not get updated when I change the value in the features modal for a particular tenant i'm using. Is there something i'm missing? I want to have the feature value updated directly when check if the feature is enabled or not in my microservice.
My solution setup;
Is there some caching that does not get invalidate when updaing the feature value?
I tried waiting a long period of time and the feature value does not get updated I tried logout/login and the feature value is still the same.
Thanks
Hello,
We're using the microservice template with a blazor web app for our application. All are running with ABP v9.1.0
When trying to import a **small ** users list in the user management page of the administration section it works fine but when trying to import (or even export) a "large" list of users (5000+) we get timeouts.
5000 users is not a lot and we expect the framework to be able to import them without any issues.
Is there any known limitations in terms of how many users should we import at a time?
Thanks
Hello,
We're using the ABP microservice template for a blazor web app that is deployed on AKS.
Our auth server is currently deployed and reachable on a /auth path.
When trying to Submit the personal info or change password on the "My account" page of the auth server we get a 404. In the network tab we see that our /auth base path is not in the url used to do the request even though we have properly set the app.UsePathBase("/auth") in the auth server module.
Is there anything other than the base path that needs to be set in order to get the auth/account actions working under a base path on the auth server?
Thanks
Hello,
i'm currently trying to get the CurrentTenant information within the context of a custom IMenuContributor. When the ConfigureMenuAsync executes on the server side the current tenant id is properly populated from the ICurrentTenant implementation but it is null when executing for web assembly. Here's my ConfigureMainMenuAsync from a custom IMenuContributor which is properly registered on the menu contributors
private static async Task ConfigureMainMenuAsync(MenuConfigurationContext context)
{
var l = context.GetLocalizer<MyResource>();
var currentTenant = context.ServiceProvider.GetRequiredService<<ICurrentTenant>ICurrentTenant>();
// Prints the current tenant id/name on the server
// Prints null on web assembly
Console.WriteLine($"Current tenant is {currentTenant.Id}: {currentTenant.Name}");
if (currentTenant.Id == null)
{
// Custom logic for the Host
}
}
Any ideas why that is?
Thanks !!