Activities of "carl.hallqvist"

In my pod shell there is only one appsettings.json as far as I can see:

root@myapplication-blazor-574bcb6484-7rsrx:/# find ./ -name appsettings.json
./app/wwwroot/appsettings.json

I also tried to create a new solution using 9.2.2 using ABP CLI. Following app settings.json is found.

$ find ./ -name appsettings.json
./gateways/web/MyApplication.WebGateway/appsettings.json
./gateways/public/MyApplication.PublicGateway/appsettings.json
./gateways/mobile/MyApplication.MobileGateway/appsettings.json
./apps/auth-server/MyApplication.AuthServer/appsettings.json
./apps/public/MyApplication.Web.Public/appsettings.json
./apps/blazor/MyApplication.Blazor.Client/wwwroot/appsettings.json
./services/identity/MyApplication.IdentityService/appsettings.json
./services/chat/MyApplication.ChatService/appsettings.json
./services/file-management/MyApplication.FileManagementService/appsettings.json
./services/language/MyApplication.LanguageService/appsettings.json
./services/gdpr/MyApplication.GdprService/appsettings.json
./services/administration/MyApplication.AdministrationService/appsettings.json
./services/saas/MyApplication.SaasService/appsettings.json
./services/audit-logging/MyApplication.AuditLoggingService/appsettings.json
./services/customer/MyApplication.CustomerService/appsettings.json

Any more ideas? Thanks :-)

Thanks,

  1. I was using the Blazor App pod shell and checked:
<cb6484-7rsrx:/app# cat wwwroot/appsettings.json
{
"App": {
    "SelfUrl": "https://staging.mydomain.io"
},
"AuthServer": {
    "Authority": "https://auth.staging.mydomain.io",
    "ClientId": "Blazor",
    "ResponseType": "code"
},
"RemoteServices": {
    "Default": {
    "BaseUrl": "https://gateway-web.staging.mydomain.io"
    }
},
"AbpCli": {
    "Bundle": {
    "Mode": "BundleAndMinify", /* Options: None, Bundle, BundleAndMinify */
    "Name": "global"
    }
}
root@geoticket-blazor-574bcb6484-7rsrx:/app# 
  1. I have checked, but no http:/ links .

  2. Yes, I am using Nginx reverse proxy. Can you show me a working example here? Thanks :-)

Answer

Thanks mailing, that was the problem! You need to copy the contracts into the blazor project.

Answer

Thanks AI,

I tried your suggestion but it did not worked, I think that @using Volo.Abp.AspNetCore.Components.Authorization is not valid.

Please let the humans take a look at it :-)

Thanks, I will take a look :-)

For some reason it seems to only be related to Safari web browser, and not Chrome. Any ideas why?

Thanks

Hi :-)

I have tried to follow https://abp.io/docs/latest/framework/infrastructure/event-bus/distributed

The CustomerService shall publish a message over RabbitMQ disitrbuted bus to the InvoiceService when Customer is updated.

The publisher:

public class CustomersAppService : ApplicationService, ICustomersAppService
{
    protected IDistributedCache<CustomerDownloadTokenCacheItem, string> _downloadTokenCache;
    protected ICustomerRepository _customerRepository;
    protected CustomerManager _customerManager;
    protected IDistributedEventBus _eventBus;

    public CustomersAppService(
        ICustomerRepository customerRepository,
        CustomerManager customerManager,
        IDistributedEventBus eventBus,
        IDistributedCache<CustomerDownloadTokenCacheItem, string> downloadTokenCache)
    {
        _downloadTokenCache = downloadTokenCache;
        _customerRepository = customerRepository;
        _customerManager = customerManager;
        _eventBus = eventBus;
    }

    public virtual async Task<CustomerDto> UpdateAsync(Guid id, CustomerUpdateDto input)
    {
        var customer = await _customerManager.UpdateAsync(
            id,
            input.Name, input.Street, input.ZipCode, input.City, input.PhoneNumber,
            input.Email, input.IsCompany, input.IdentificationNumber, input.AttName,
            input.ConcurrencyStamp
        );
    
        // Send update event
        var customerUpdatedEto = ObjectMapper.Map<Customer, CustomerUpdatedEto>(customer);
        await _eventBus.PublishAsync(customerUpdatedEto);
        
        // Return object
        return ObjectMapper.Map<Customer, CustomerDto>(customer);
    }

    ...
}

The ETO class:

using Volo.Abp.EventBus;

namespace MyProject.CustomerService.Customers;

[EventName("MyProject.CustomerService.Customers.CustomerUpdated")]
public class CustomerUpdatedEto
{
    public Guid Id { get; set; }
    public string Name { get; set; } = null!;
    public string Street { get; set; } = null!;
    public string ZipCode { get; set; } = null!;
    public string City { get; set; } = null!;
    public string PhoneNumber { get; set; } = null!;
    public string Email { get; set; }
    public bool IsCompany { get; set; }
    public string? IdentificationNumber { get; set; }
    public string? AttName { get; set; }
}

That's everything I have done in the CustomerService. In the subscriber, InvoiceService is only one added class CustomerServiceEventHandler

using MyProject.CustomerService.Customers;
using Volo.Abp.DependencyInjection;
using Volo.Abp.EventBus.Distributed;

namespace MyProject.InvoiceService;

public class CustomerServiceEventHandler : IDistributedEventHandler<CustomerUpdatedEto>, ITransientDependency
{
    public async Task HandleEventAsync(CustomerUpdatedEto eventData)
    {
        var customerId = eventData.Id;       
    }
}

Now, I have started the both services, CustomerService and the InvoiceService, and the RabbitMQ queues are listed by using the RabbitMQ CLI:

$ docker exec -it rabbitmq rabbitmqctl list_queues
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name	messages
AbpBackgroundJobsDelayed.Volo.Abp.Emailing.BackgroundEmailSendingJobArgs	0
MyProject_AuthServer	0
MyProject_IdentityService	0
MyProject_CustomerService	0
AbpBackgroundJobs.Volo.Abp.Emailing.BackgroundEmailSendingJobArgs	0
MyProject_InvoiceService	0

So the queues seems to be registered. However, I can't see that any message is published, nor received at the subscribe. Notice that the receiver has a binding to the ETO class MyProject.CustomerService.Customers.CustomerUpdated. When using debugger in CustomerService, I can see that there is no exceptions thrown in the await _eventBus.PublishAsync(customerUpdatedEto); line.

$ docker exec -it rabbitmq rabbitmqctl list_bindings | grep MyProject_CustomerService
	exchange	MyProject_CustomerService	queue	MyProject_CustomerService	[]
MyProject	exchange	MyProject_CustomerService	queue	Volo.Abp.Localization.LanguageChangedEto	[]
MyProject	exchange	MyProject_CustomerService	queue	Volo.Payment.RecurringPaymentUpdated	[]
MyProject	exchange	MyProject_CustomerService	queue	Volo.Payment.SubscriptionCanceled	[]
MyProject	exchange	MyProject_CustomerService	queue	Volo.Payment.SubscriptionCreated	[]
MyProject	exchange	MyProject_CustomerService	queue	abp.data.apply_database_migrations	[]
MyProject	exchange	MyProject_CustomerService	queue	abp.multi_tenancy.tenant.connection_string.updated	[]
MyProject	exchange	MyProject_CustomerService	queue	abp.multi_tenancy.tenant.created	[]

$ docker exec -it rabbitmq rabbitmqctl list_bindings | grep MyProject_InvoiceService
	exchange	MyProject_InvoiceService	queue	MyProject_InvoiceService	[]
MyProject	exchange	MyProject_InvoiceService	queue	MyProject.CustomerService.Customers.CustomerUpdated	[]
MyProject	exchange	MyProject_InvoiceService	queue	Volo.Abp.Localization.LanguageChangedEto	[]
MyProject	exchange	MyProject_InvoiceService	queue	Volo.Payment.RecurringPaymentUpdated	[]
MyProject	exchange	MyProject_InvoiceService	queue	Volo.Payment.SubscriptionCanceled	[]
MyProject	exchange	MyProject_InvoiceService	queue	Volo.Payment.SubscriptionCreated	[]
MyProject	exchange	MyProject_InvoiceService	queue	abp.data.apply_database_migrations	[]
MyProject	exchange	MyProject_InvoiceService	queue	abp.multi_tenancy.tenant.connection_string.updated	[]
MyProject	exchange	MyProject_InvoiceService	queue	abp.multi_tenancy.tenant.created	[]

Thanks, it is working fine now! :-)

Hi, I added your suggestions in the project file. However, the generate embedded files manifest setting

<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>

result with this in the Developer console in web browser:

[Error] Error: One or more errors occurred. (An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module Volo.Abp.AspNetCore.Components.WebAssembly.AbpAspNetCoreComponentsWebAssemblyModule, Volo.Abp.AspNetCore.Components.WebAssembly, Version=9.0.4.0, Culture=neutral, PublicKeyToken=null: The API description of the Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService.GetAsync method was not found!. See the inner exception for details.)
	(anonym funktion) (blazor.web.js:1:157835)

When setting to false / remove it, then it is the same result as before. Any other ideas?

Thanks

Thanks,

I can understand why you don't recommend to use Language Module for static content. However, we was first trying to follow the localization guide at https://abp.io/docs/latest/framework/fundamentals/localization but failed.

So perhaps you can guide us to set the localization instead of using the language module?

This is what we have done:

ProjectBlazorClientModule.cs:

[DependsOn(
    typeof(AbpLocalizationModule),
    ...
    typeof(AbpVirtualFileSystemModule) //virtual file system
)]
public class ProjectBlazorClientModule : AbpModule
{
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        var environment = context.Services.GetSingletonInstance<IWebAssemblyHostEnvironment>();
        var builder = context.Services.GetSingletonInstance<WebAssemblyHostBuilder>()

        // Include the generated app-generate-proxy.json in the virtual file system
        Configure<AbpVirtualFileSystemOptions>(options =>
        {
            options.FileSets.AddEmbedded<ProjectBlazorClientModule>();
        });

        ConfigureLocalization();
        ...
    }
    
    private void ConfigureLocalization()
    {
        Configure<AbpVirtualFileSystemOptions>(options =>
        {
            options.FileSets.AddEmbedded<ProjectBlazorClientModule>();
        });

        Configure<AbpLocalizationOptions>(options =>
        {
            //Define a new localization resource (TestResource)
            options.Resources
                .Add<TestResource>("en")
                .AddVirtualJson("/Localization/Resources/Test");
            options.DefaultResourceType = typeof(TestResource);
        });
    }
}
TestResource.cs

using Volo.Abp.Localization;

namespace GeoTicket.Blazor.Client.Localization.Resources;

[LocalizationResourceName("Test")]
public class TestResource;
File structure:
Project.Blazor.Client/
├── Project.Blazor.Client.csproj
├── ProjectBlazorClientModule.cs
├── .....
├── ProjectComponentBase.cs
├── Localization
│   ├── Resources
│   │   └── Test
│   │       ├── en.json
│   │       └── sv.json
│   └── TestResource.cs
.....
en.json content (similar for sv.json):

{
  "culture": "en",
  "texts": {
    "HelloWorld": "Hello World!"
  }
}
@page "/"
@using Project.Blazor.Client.Localization.Resources
@using Microsoft.Extensions.Localization
@inherits ProjectComponentBase

@inject IStringLocalizer<TestResource> W

@W["HelloWorld"] 

The @W["HelloWorld"] is not working, just HelloWorld in the page above.

I think that we have followed the guide, but still doesn't get it. Any ideas?

Showing 21 to 30 of 65 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.2.0-preview. Updated on February 17, 2026, 09:10
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.