Activités de "imranStem"

Hello,

I have microservices architecture and I have integrated the Azure service bus and is working fine for all microservices. I have the below configuration.

Microservice 1

 "Azure": {
    "ServiceBus": {
      "Connections": {
        "Default": {
          "ConnectionString": "MyConnectionString"
        }
      }
    },
    "EventBus": {
      "ConnectionName": "Default",
      "SubscriberName": "MyProject_Subscriber",
      "TopicName": "MyProject_TopicName"
    }
  },

and having the same configuration in all other microservices.

Now the problem is, when a new entity is inserted in microservice 1 then it published the event to all microservices, and also I have a common TopicName for all the microservices. I want to integrate the below kind of configuration.

Example:

Microservice 1: Insert EntityA publish event to TopicNameA: Subscriber-only Microservice 2 Microservice 1: Insert EntityB publish event to TopicNameB: Subscriber-only: Microservice 2 and Microservice 3 Microservice 1: Insert EntityC publish event to TopicNameC: Subscriber-only: Microservice 4 Microservice 2: Insert EntityD publish event to "TopicNameD: Subscriber-only: Microservice 1

Basically, I want multiple topic names and dependent subscribers only for each microservices based on published events.

  • ABP Framework version: v5.0.0
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:No Exception
  • Steps to reproduce the issue:"

Hello Team,

I have one ABP application with the EntityFrameworkCore integration. I have created one module with MongoDB and integrated it with the existing application. I injected the ApplicationService, HttpApi, and MongoDB modules into the host application of the main application. With this configuration, when I run the application, I am getting the below exception in the application.

  • ABP Framework version: v4.3.2
  • UI type: Angular
  • DB provider: EF Core in application / MongoDB as Module
  • Tiered (MVC) or Identity Server Separated (Angular): yes, its separated
  • Exception message and stack trace:
  An error occurred during ConfigureServices phase of the module Test.MongoDB.TestMongoDbModule, Test.MongoDB,
Volo.Abp.AbpInitializationException: An error occurred during ConfigureServices phase of the module Test.MongoDB.TestMongoDbModule, Test.MongoDB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. See the inner exception for details.
---> System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1<System.Type> Volo.Abp.DependencyInjection.AbpCommonDbContextRegistrationOptions.get_ReplacedDbContextTypes()'.
at Microsoft.Extensions.DependencyInjection.AbpMongoDbServiceCollectionExtensions.AddMongoDbContext[TMongoDbContext](IServiceCollection services, Action`1 optionsBuilder)
at Test.MongoDB.TestMongoDbModule.ConfigureServices(ServiceConfigurationContext context) in ..\MongoDbModule\src\Test.MongoDB\MongoDb\TestMongoDbModule.cs:line 32
at Volo.Abp.AbpApplicationBase.ConfigureServices()
--- End of inner exception stack trace ---
at Volo.Abp.AbpApplicationBase.ConfigureServices()
at Volo.Abp.AbpApplicationBase..ctor(Type startupModuleType, IServiceCollection services, Action`1 optionsAction)
at Volo.Abp.AbpApplicationWithExternalServiceProvider..ctor(Type startupModuleType, IServiceCollection services, Action`1 optionsAction)
at Volo.Abp.AbpApplicationFactory.Create(Type startupModuleType, IServiceCollection services, Action`1 optionsAction)
at Volo.Abp.AbpApplicationFactory.Create[TStartupModule](IServiceCollection services, Action`1 optionsAction)
at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplication[TStartupModule](IServiceCollection services, Action`1 optionsAction)
at Test.Startup.ConfigureServices(IServiceCollection services) in ..\aspnet-core\src\Test.HttpApi.Host\Startup.cs:line 12
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.InvokeCore(Object instance, IServiceCollection services)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass9_0.<Invoke>g__Startup|0(IServiceCollection serviceCollection)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.Invoke(Object instance, IServiceCollection services)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass8_0.<Build>b__0(IServiceCollection services)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.UseStartup(Type startupType, HostBuilderContext context, IServiceCollection services, Object instance)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__0(HostBuilderContext context, IServiceCollection services)
at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at Test.Program.Main(String[] args)
  • Steps to reproduce the issue:" Add MongoDB module into the EFCore application.

No, The project is already developed. We added a new module to the existing project. After adding a new module, the Client is not authenticated.

Angular UI project is not authenticated. When I click on the login button, it redirects to the authentication server, I logged in then it's redirected back to the client project but it's not authenticated. I checked the network tab and the current user returns null and authorized false. When I open the authentication server, then it displays the current user logged in but the client is not authenticated.

  • ABP Framework version: v4.3.2
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:No Exception
  • Steps to reproduce the issue:"

Hi,

I have created the ABP microservices template project and configured the Azure Service Bus to integrate the event bus. I removed the RabbitMq injection from modules and configuration from appsettings. When I run the projects, I got the error of RabbitMq as microservices use the RabbitMq configuration for the background jobs (AbpBackgroundJobsRabbitMqModule) so I decide to put the RabbitMq integration again in the project.

My appsettings.json file has the below configuration.

"RabbitMQ": {
    "Connections": {
      "Default": {
        "HostName": "localhost"
      }
    },
    "EventBus": {
      "ClientName": "Project_AuthServer",
      "ExchangeName": "Project"
    }
  },
  "Azure": {
    "ServiceBus": {
      "Connections": {
        "Default": {
          "ConnectionString": "Endpoint=sb://mydomain.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey={{AccessKey}}"
        }
      }
    },
    "EventBus": {
      "ConnectionName": "Default",
      "SubscriberName": "Project_Subscriber",
      "TopicName": "Projecty_AuthServer"
    }
  },

So now, I have two configurations for the event bus, the Azure service bus, and RabbitMq but how it will work to publish and subscribe to the events? I want to use the Azure service bus for the publishing and subscription event bus for the microservices but BackgroundJobs needs configuration of RabbitMq as well.

Do we need to define the EventBus settings for the RabbitMq configuration?

  • ABP Framework version: v5.0.0
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

I got it now. I was running the applications from visual studio IIS express. I run all the projects using 'dotnet run' command and angular projects loading successfully but still, I am not able to see the definitions in Swagger UI. I will check further and will close this issue if everything works fine.

I looked at the Swagger UI, there is only one definition of web gateway. I also run the angular project and it is throwing below error.

An error has occurred! Http failure response for https://localhost:44320/api/abp/application-configuration: 0 Unknown Error

Port 44320 is the web gateway port.

Can you please provide any documents on a static proxy for modules?

Hi,

I have created a microservices project using the ABP Suite and configured it as per the documentation of the microservice template. When I run the web gateway, I cannot see all the endpoints of administration, identity service, and saas microservices. I checked the source code and compared the microservice template with the older version 4.4.0 and found the following code changes in the WebGateway Module file.

The older version 4.4.0 injected the below modules into the web gateway module.

[DependsOn(
        typeof(CoreSharedHostingGatewaysModule),
        typeof(ProductServiceHttpApiModule),
        typeof(AbpAccountPublicHttpApiModule),
        typeof(IdentityServiceHttpApiModule),
        typeof(SaasServiceHttpApiModule),
        typeof(AdministrationServiceHttpApiModule)
    )]
    public class CoreWebGatewayModule : AbpModule
    {}

In the newer version, 5.0.0 injected the below modules into the web gateway module.

[DependsOn(
        typeof(ChurchPharmacySharedHostingGatewaysModule),
        typeof(ProductServiceHttpApiModule)
    )]
    public class CoreWebGatewayModule : AbpModule
    {}

In the newer version, the administration, identity service, and saas module are not injected. Do we need to inject these three modules into the web gateway to use the endpoints of those modules? the appsettings.json file contains the route configuration of all these modules but endpoints are visible in the Swagger UI.

  • ABP Framework version: 5.0.0
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

Hello Liming,

I sent info in your email.

I have downloaded the latest source code from the Github repository and I successfully build the ABP framework and Azure Event bus sample code. I configured the azure connection string, topic name, and subscription. When I run the project, it throws the stack overflow exception. I debug the code and found the following issues.

public async Task PublishAsync(
        Type eventType,
        object eventData,
        bool onUnitOfWorkComplete = true,
        bool useOutbox = true)
    {
        if (onUnitOfWorkComplete && UnitOfWorkManager.Current != null)
        {
            AddToUnitOfWork(
                UnitOfWorkManager.Current,
                new UnitOfWorkEventRecord(eventType, eventData, EventOrderGenerator.GetNext(), useOutbox)
            );
            return;
        }
        if (useOutbox)
        {
            if (await AddToOutboxAsync(eventType, eventData))
            {
                return;
            }
        }
        await PublishToEventBusAsync(eventType, eventData);
    }`

In the above code, the value of UnitOfWorkManager.Current is null so it jumps to the second condition, and executes the AddToOutboxAsync method.

`private async Task<bool> AddToOutboxAsync(Type eventType, object eventData)
    {
        var unitOfWork = UnitOfWorkManager.Current;
        if (unitOfWork == null)
        {
            return false;
        }
        foreach (var outboxConfig in AbpDistributedEventBusOptions.Outboxes.Values)
        {
            if (outboxConfig.Selector == null || outboxConfig.Selector(eventType))
            {
                var eventOutbox = (IEventOutbox)unitOfWork.ServiceProvider.GetRequiredService(outboxConfig.ImplementationType);
                var eventName = EventNameAttribute.GetNameOrDefault(eventType);
                await eventOutbox.EnqueueAsync(
                    new OutgoingEventInfo(
                        GuidGenerator.Create(),
                        eventName,
                        Serialize(eventData),
                        Clock.Now
                    )
                );
                return true;
            }
        }
        return false;
    }

Again, in the above method, it checks the unit of work which is null so it returns false and PublishToEventBusAsync is executing and that method again calls the first publish method so the code executing into the loop and throws stack overflow exception.

I also tried to read the documents on azure event bus, the link redirects to 404 page.

Distributed-Event-Bus-Azure-Integration

I successfully integerated the RabbitMq integration in my project but we are planning to migrate into Azure service bus with ABP 5.0 version but it is in preview mode and documentation is not completed yet.

Thanks Imrankhan

  • ABP Framework version: v5.0.0
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:" Download the sample codes of azure service bus and run the console application.
Affichage de 81 à 90 sur 93 entrées
Made with ❤️ on ABP v8.2.0-preview Updated on mars 25, 2024, 15:11