Hi, can you please run the following command and then try to re-create the microservice template?
npm install -g npx@latest
If it does not fix your problem, then please share all details such as ABP Studio version, options that you selected, and any other additional options.
Regards.
Hi, thanks for reporting this. Indeed, it should be under the controllers folder. I'll create an issue for that, but can you share your solution structure, so we can better test it?
What about new tables created in Administration and Identity MicroService:
public class IdentityServiceDbContext : AbpDbContext, IIdentityProDbContext, IOpenIddictDbContext, IHasEventInbox, IHasEventOutbox public DbSet IncomingEvents { get; set; } public DbSet OutgoingEvents { get; set; }
Hi, you can refer to our migration guides (https://abp.io/docs/9.2/release-info/migration-guides). Typically, you don't need to add any additional code to your solution, and you don't need to modify the dbcontext class. But, if you want to align your microservice solution, then you can create a new ms template in v9 and compare the changes and apply it to your codebase, but it's totally optional.
Regards.
Update: We fix the problem and it will be included in the next patch relase. Thanks for your understanding.
Your credit has been refunded, and since it will be fixed in the next version, I am closing the question.
Regards.
Hi, instead of just configuring the option, use the AddAbpCookieConsent
method to register services & register the related component to the layout:
context.Services.AddAbpCookieConsent(options =>
{
options.IsEnabled = true;
options.CookiePolicyUrl = "/CookiePolicy";
options.PrivacyPolicyUrl = "/PrivacyPolicy";
});
If you only configure the option, then it has no effect. So, you should call AddAbpCookieConsent
to inject the component to the layout.
Btw, you should also add app.UseAbpCookieConsent()
in your request pipeline.
I have now installed it with the Abp Studio (Volo.Abp.Gdpr.Web), but unfortunately it still does not work.
Yes, this is the correct package to add to your public web project. If the cookie consent still doesn't appear, it's possible that there's an entry in your localStorage with the value set to 'dismiss'. Please check your localStorage, clear it if possible, and try again to see if the consent banner is displayed.
Hi, thank you for your support!
The issue has been resolved successfully.
Great to hear that! Regards.
Hi, if you are using the GDPR module in your public web application, you can configure the AbpCookieConsentOptions
:
Configure<AbpCookieConsentOptions>(options =>
{
IsEnabled = true;
CookiePolicyUrl = "/CookiePolicy";
PrivacyPolicyUrl = "/PrivacyPolicy";
Expiration = TimeSpan.FromDays(180);
});
For further info, you can refer to the documentation: https://abp.io/docs/latest/modules/gdpr
Hi, to be honest, this is not related to ABP, rather it's all about Hangfire. We provide Hangfire Background Jobs Manager yes, but this is a thin wrapper to Hangfire. So, you can rely on Hangfire's own documentation for this, we are just abstracting their implementation and integrate with our own Background Jobs System.
As far as I understand from the documentation of Hangfire, Hangfire doesn't guarantee strict job execution order within a queue, especially under concurrency, and it relies on the concrete storage implementation.
Here is a note about "processing order" of Hangfire Background Job Manager:
You can check Hangfire's documentation, but it seems there is no certain way for that.
Regards.
Hi . The error dialog still showing after editing code like you suggested.
<TelerikSwitch Value="@item.IsActive" OnLabel=" " OffLabel=" " Size="@ThemeConstants.Switch.Size.Small" OnChange="@(async () => await ToggleStatus(item))"/> </span> private async Task ToggleStatus(ChassisTypeDto item) { try { throw new UserFriendlyException("Test exception"); } catch (UserFriendlyException ex) { Logger.LogError(ex, "Handled UserFriendlyException"); await Notify.Error(string.IsNullOrEmpty(ex.Message) ? L["Messages:Error"] : ex.Message); } catch (Exception e) { Logger.LogError(e, "Error change status container type with id id :{SelectedChassisTypeId}", SelectedChassisTypeId); await Notify.Error(string.IsNullOrEmpty(e.Message) ? L["Messages:Error"] : e.Message); } finally { LoaderVisible = false; } }
Okay, it seems it's all about timing and you need to disable ABP's exception handling system on the UI side. To do that, you can add the following line to both your Blazor.Client
and Blazor
projects' module classes:
public override void ConfigureServices(ServiceConfigurationContext context)
{
//other configs...
context.Services.Replace(ServiceDescriptor.Transient(typeof(IUserExceptionInformer), typeof(NullUserExceptionInformer)));
}
This will replace the UserExceptionInformer
service (https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/ExceptionHandling/UserExceptionInformer.cs), which shows a message dialog by default. If you want you can create your own UserExceptionInformer implementation and then show Notify popup on the bottom-right for each exception.
After the replacement, it should work seamlessly: