Activités de "rogercprops"

Hi,

I updated the program.cs in the web-gateway and in the HttpApi.Host program.cs in one of the microservices. The log is still showing the ip address of the web-gateway pod.

This is the code in the HttpApi.Host program.cs `**using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.AspNetCore.HttpOverrides; using CprOnAbp.Shared.Hosting.AspNetCore; using Serilog;

namespace CprOnAbp.ClientService;

public class Program { public async static Task Main(string[] args) { var assemblyName = typeof(Program).Assembly.GetName().Name;

    SerilogConfigurationHelper.Configure(assemblyName);

    try
    {
        Log.Information($"Starting {assemblyName}.");
        var builder = WebApplication.CreateBuilder(args);
        
        builder.Services.Configure<ForwardedHeadersOptions>(options =>
        {
            options.ForwardedHeaders =
        ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
        });


        builder.Host
            .AddAppSettingsSecretsJson()
            .UseAutofac()
            .UseSerilog();

        await builder.AddApplicationAsync<ClientServiceHttpApiHostModule>();

        var app = builder.Build();

        app.UseForwardedHeaders();

        await app.InitializeApplicationAsync();
        await app.RunAsync();
        return 0;
    }
    catch (Exception ex)
    {
        Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!");
        return 1;
    }
    finally
    {
        Log.CloseAndFlush();
    }
}

} **`

Hi,

I've provide you read access to the repository.

https://github.com/cpr-ops/web-app

Since this is C# code it's obvious in goes in a .net application. Is that in the front-end application, the ocelot gateway application or the microservice.

If it's in the front end application that won't work for us since we're using Vue for the front-end and using microservices for the backend.

The MVC app is the one that's created with your Microservice Template and we haven't modified it.

The application is running in AKS. I updated the original question with the output from the pod log. The error just repeats infinitely until I delete the application

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, and please first use the search on the homepage. Provide us with the following info:

  • ABP Framework version: v7.2.2 Commercial
  • UI Type: MVC
  • Database System: EF Core SQL Server
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace:

We have a microservices solution created from the Microservice Template and have deployed it to AKS test environment. We're getting this error in the MVC web application created from the template in what appears to be an infinite loop. We haven't modified the web application from the template. I don't know how long this error has been occurring since I just happened to be viewing the pod logs for a different reason when I saw this. I had to delete the MVC application.

I'm not seeing this error when the application is run via Tye on localhost against the same databases.

[16:57:49 ERR] An exception was thrown while activating Volo.Abp.Identity.UserPasswordChangeRequestedEventHandler.
    Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.Identity.UserPasswordChangeRequestedEventHandler.
    \-\-\-\> Autofac\.Core\.DependencyResolutionException: None of the constructors found on type 'Volo\.Abp\.Identity\.UserPasswordChangeRequestedEventHandler' can be invoked with the available services and parameters:
    Cannot resolve parameter 'Volo.Abp.Identity.IIdentityUserRepository userRepository' of constructor 'Void .ctor(Volo.Abp.Identity.IIdentityUserRepository, Volo.Abp.Identity.IdentityUserManager)'.
    See [https://autofac.rtfd.io/help/no-constructors-bindable](https://autofac.rtfd.io/help/no-constructors-bindable) for more info.
    at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c\_\_DisplayClass14\_0.b\_\_0(ResolveRequestContext ctxt, Action`1 next) at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
    at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c\_\_DisplayClass14\_0.b\_\_1(ResolveRequestContext ctxt)
    at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.&lt;&gt;c__DisplayClass14_0.&lt;BuildPipeline&gt;b__1(ResolveRequestContext ctxt) at Autofac.Builder.RegistrationBuilder`3.<>c\_\_DisplayClass41\_0.b\_\_0(ResolveRequestContext ctxt, Action`1 next) at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
    at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c\_\_DisplayClass14\_0.b\_\_1(ResolveRequestContext ctxt)
    at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) --- End of inner exception stack trace --- at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
    at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c\_\_DisplayClass14\_0.b\_\_1(ResolveRequestContext ctxt)
    at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
    at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.&lt;&gt;c__DisplayClass14_0.&lt;BuildPipeline&gt;b__1(ResolveRequestContext ctxt) at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
    at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c\_\_DisplayClass14\_0.b\_\_1(ResolveRequestContext ctxt)
    at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c\_\_DisplayClass14\_0.b\_\_1(ResolveRequestContext ctxt)
    at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.&lt;&gt;c__DisplayClass14_0.&lt;BuildPipeline&gt;b__1(ResolveRequestContext ctxt) at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
    at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
    at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
    at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
    at Volo.Abp.EventBus.IocEventHandlerFactory.GetHandler()
    at Volo.Abp.EventBus.EventBusBase.TriggerHandlerAsync(IEventHandlerFactory asyncHandlerFactory, Type eventType, Object eventData, List`1 exceptions, InboxConfig inboxConfig) at Volo.Abp.EventBus.EventBusBase.TriggerHandlersAsync(Type eventType, Object eventData, List`1 exceptions, InboxConfig inboxConfig)
    at Volo.Abp.EventBus.EventBusBase.TriggerHandlersAsync(Type eventType, Object eventData)
    at Volo.Abp.EventBus.RabbitMq.RabbitMqDistributedEventBus.ProcessEventAsync(IModel channel, BasicDeliverEventArgs ea)
    at Volo.Abp.RabbitMQ.RabbitMqMessageConsumer.HandleIncomingMessageAsync(Object sender, BasicDeliverEventArgs basicDeliverEventArgs)
    [16:57:49 ERR] ---------- Exception Data ----------
  • Steps to reproduce the issue:

Could you please be more specific. Maybe I need what and where?

There are multiple topics covered in the link you provided.

  • ABP Framework version: v7.2.
  • UI Type: MVC / Vue
  • Database System: EF Core SQL Server
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace: N/A
  • Steps to reproduce the issue:

We have implemented a microservices architecture using the ABP Commercial Microservice template. The architecture is pretty close to the Abp diagram here https://docs.abp.io/en/commercial/7.2/startup-templates/microservice/index with a few notable exceptions.

  • We're not using a public gateway or application
  • We have a Vue js 3 front end application that authenticates the user through the authserver using the Authorization code flow
  • We have a couple of other applications that authenticate the user through the authserver using the Client credentials grant
  • The Vue application and external applications access the microservices via API calls through the gateway (we use Postman to test the external application API calls)

The backend applications and gateway are running in a single Azure Kubernetes cluster. The IP address of the gateway pod is 10.1.1.21.

Regardless of which application is executing the microservice method, it appears that the IP address is address for the gateway AKS pod. The expected result would be for the IP Address to be the external IP from the user's machine. (See screenshots from the audit log below). Is this a defect or is there something we need to configure on our end?

Web MVC app

Vue App

Postman calling microservice API via gateway

  • ABP Framework version: 7.2.2
  • UI Type: N/A
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace: N/A
  • Steps to reproduce the issue: N/A

We have a number of use cases where it would be ideal to utilize the Azure Service Bus message scheduling feature https://learn.microsoft.com/en-us/azure/service-bus-messaging/message-sequencing, but I can't find anything in the documentation, samples, blog posts or anywhere that shows how to do that.

For example when a client schedules an appointment we'd like to send reminders via SMS and/or email at various intervals (e.g. one week prior, 2 days prior to scheduled date).

Is this possible using AzureDistributedEventBus and if so, what are the detailed steps to implement?

Thank you.

Hi,

You're correct that it's an empty service solution because it was created using the ABP CLI for creating a new micro-service

Since Abp Suite doesn't allow adding new microservices to an existing solution, what we usually do is create a duplicate solution using Abp Suite and the Application template so it can automatically generate the code shell for the entity(ies). For example calling it CprOnAbp.StaffService. For EF Core it's a fairly straight forward process to copy the appropriate folders and files from the application template to the micro-service template because Abp Suite generates all of the code in a similar structure as abp new [service name] -t microservice-service-pro --no-ui.

Because the ABP CLI doesn't allow for creation of a microservice using Mongo DB there should be clear instructions on how to change from EF Core to MongoDB.

Also, the guide seems to be based on all services being MongoDB. IMO, this goes against a micro-service architecture principle where the underlying code and database for each service are independent. We should be able to have a mix of EF Core & MongDB services depending on the use case.

Having said all that, following the guide and creating a new Microservice solution and updating the product service I was still not able to find:

  • Volo.Abp.PermissionManagement.EntityFrameworkCore
  • AbpPermissionManagementEntityFrameworkCoreModule
  • IProductServiceDbContext
  • PendingMigrationsCheckerBase

My recommendation for the guide would be to

  • Create a new micro-service in an existing micro-service solution
  • Create a new project for MongoDB and delete the EntityFrameworkCore project. Provide specific code for each file/class in the MongoDB project.
  • Add the steps and code to migrate/seed the data within the service. Would be nice to have the shared dbMigrator do it but not necessary.

For now, I'll do my best to update the service for MongoDB and I'll be happy to share the steps and code if I'm successful.

Hi,

I created a new microservice called StaffService From your guide I could not find the following in my solution:

  • Volo.Abp.PermissionManagement.EntityFrameworkCore
  • AbpPermissionManagementEntityFrameworkCoreModule
  • the Migrations folder
  • IStaffServiceDbContext
  • EfCoreStaffRepository
  • CprOnApbDbMigrationService
  • class DatabaseMigrationEventHandlerBase
  • PendingMigrationsCheckerBase

I get the following errors: StaffServiceEntityFrameworkCoreModule.cs [DependsOn( typeof(AbpMongoDbModule), typeof(StaffServiceDomainModule) )] error: The type or namespace name 'AbpMongoDbModule' could not be found (are you missing a using directive or an assembly reference?)CS0246

context.Services.AddMongoDbContext&lt;StaffServiceDbContext>(options => error: IServiceCollection' does not contain a definition for 'AddMongoDbContext' and no accessible extension method 'AddMongoDbContext' accepting a first argument of type 'IServiceCollection' could be found (are you missing a using directive or an assembly reference?)CS1061

Affichage de 1 à 10 sur 39 entrées
Made with ❤️ on ABP v8.2.0-preview Updated on mars 25, 2024, 15:11