Reputation: 372
I am trying to register my .net 7 web api application to eureka server, but I am getting the following error, why?
Code Explain
I use Autofac for service registrations, I make autofac configurations in a separate dotnet 7 library project. Even though I wrote the necessary configurations to connect to the Eureka service, I get an error.
Codes: CoreModule
using Project.Services.Core.Extensions;
using Project.Services.Core.Utilities.IoC;
using Microsoft.Extensions.DependencyInjection;
using StackExchange.Redis;
using System.Diagnostics;
using Serilog;
using Microsoft.Extensions.Configuration;
using Steeltoe.Discovery.Client;
using Steeltoe.Discovery.Eureka;
namespace Project.Services.Core.DependencyResolvers
{
public class CoreModule : ICoreModule
{
public void Load(IServiceCollection services, IConfiguration configuration)
{
services.AddServiceDiscovery(o => o.UseEureka());
services.AddMemoryCache();
services.AddSingleton<ICacheManager, MemoryCacheManager>();
services.AddSingleton<IDistributedCacheManager, DistributedCacheManager>();
services.AddHttpContextAccessor();
services.AddSingleton<Stopwatch>();
}
}
}
Program.cs
builder.Services.AddDependencyResolvers(new ICoreModule[]
{
new CoreModule()
}, builder.Configuration);
appsettings.json config
"Spring": {
"Application": {
"Name": "STOCK-SERVICE"
}
},
"Eureka": {
"Client": {
"ServiceUrl": "http://localhost:867/eureka/",
"ValidateCertificates": false,
"ShouldRegisterWithEureka": true
},
// No docke instance added
"Instance": {
//"port": 5004,
"NonSecurePort": 5004,
"HostName": "localhost",
"InstanceId": "Stock.API,Port:5004",
"StatusPageUrlPath": "/swagger/index.html"
//"HealthCheckUrlPath": "/api/values/healthcheck"
}
}
Error Details
Autofac.Core.DependencyResolutionException
HResult=0x80131500
Message=An exception was thrown while activating λ:Microsoft.Extensions.Hosting.IHostedService[] -> Steeltoe.Discovery.Client.DiscoveryClientService -> λ:Steeltoe.Discovery.IDiscoveryClient -> λ:Steeltoe.Discovery.Eureka.EurekaDiscoveryClient -> Steeltoe.Discovery.Eureka.EurekaApplicationInfoManager.
Source=Autofac
StackTrace:
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>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.<>c__DisplayClass14_0.<BuildPipeline>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.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.InvokePipeline(ResolveRequest request, DefaultResolveRequestContext requestContext)
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.Core.Container.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 Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>d__12.MoveNext()
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.<RunAsync>d__4.MoveNext()
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.<RunAsync>d__4.MoveNext()
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
at Program.<Main>$(String[] args)
DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(Microsoft.Extensions.Options.IOptionsMonitor`1[Steeltoe.Discovery.Eureka.EurekaInstanceOptions], Microsoft.Extensions.Logging.ILoggerFactory)' on type 'EurekaApplicationInfoManager'.
NullReferenceException: Object reference not set to an instance of an object.
Upvotes: 0
Views: 79