You can consider handling concurrent exceptions rather than disabling them. You can catch exceptions and then retry.
hi
We can only modify the code to resolve this issue. There is no simpler way.
hundreds of entities
Only entities with 1-n relationships may get concurrency exceptions. Not all entities.
hi
we implemented the solution for task type successfully.
Are you using IgnoredNavigationEntitySelectors?
hi
Get a token for the user in a SaaS tenant
How did you get the new token?
Please share your HTTP request
Thanks..
hi
Since the new version might have no direct relationship to the original entity, would this process still trigger an update to the concurrency stamp of the existing entity?
No, it will only trigger for the navigation property.
The OpenIdConnect will validate the OpenIdConnectOptions.
So you have to set a value initially.
hi
Framework will skip it : https://github.com/abpframework/abp/blob/rel-9.1/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs#L274
You can try it.
Thanks.
hi
abp update --version 9.1.1
Or
You can search and replace the abp & Volo package version in *.csproj files globally.
ABP & VOLO to 9.1.1
LeptonX to 4.1.1
hi
Please update the package to 9.1.1. The IgnoredNavigationEntitySelectors will be available.
Thanks.
hi
Add to your AuthServer project.
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.IdentityModel.Protocols;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
using Volo.Abp.Account.Public.Web.ExternalProviders;
using Volo.Abp.DependencyInjection;
namespace AbpMicroservices.AuthServer;
public class MyOpenIdConnectOptionsPostConfigureAccountExternalProviderOptions : IPostConfigureAccountExternalProviderOptions<OpenIdConnectOptions>, ITransientDependency
{
public Task PostConfigureAsync(string name, OpenIdConnectOptions options)
{
if (!string.IsNullOrEmpty(options.Authority))
{
options.MetadataAddress = options.Authority;
if (!options.MetadataAddress.EndsWith('/'))
{
options.MetadataAddress += "/";
}
options.MetadataAddress += ".well-known/openid-configuration";
}
options.ConfigurationManager = new ConfigurationManager<OpenIdConnectConfiguration>(options.MetadataAddress, new OpenIdConnectConfigurationRetriever(),
new HttpDocumentRetriever(options.Backchannel) { RequireHttps = options.RequireHttpsMetadata })
{
RefreshInterval = options.RefreshInterval,
AutomaticRefreshInterval = options.AutomaticRefreshInterval,
};
return Task.CompletedTask;
}
}