服务未使用作为 Windows 服务运行的 Owin、SteelToe/Autofac 向 Eureka Server 注册

问题描述 投票:0回答:2

Web 服务未通过带有作为 Windows 服务运行的 Steeltoe/Autofac 库的 OWIN SelfHosted 控制台应用程序向 Eureka Server 注册。

//container.StartDiscoveryClient();确实在另一个 ASP.net 应用程序中注册了 Eureka 服务器,但不在上述控制台应用程序中注册。

当客户端获得我们正在寻找的响应时,服务在 Postman 中正确运行。

启动.cs:

ApplicationConfig.RegisterConfig(“开发”);

            var builder = new ContainerBuilder();
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            builder.Register(c => new Logger()).As<ILogger>().InstancePerRequest();
            builder.RegisterDiscoveryClient(ApplicationConfig.Configuration);
            builder.RegisterType<Diw.Persist.DiwData>().As<Diw.Persist.IDiwData>().InstancePerRequest();
            builder.RegisterType<EwsService>().InstancePerRequest();
            builder.RegisterType<HubData.Persist.HubDataData>().InstancePerRequest();
            builder.RegisterType<Icm.Persist.IcmData>().InstancePerRequest();

            var container = builder.Build();
            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            app.UseAutofacMiddleware(container);
            app.UseAutofacWebApi(config);
            app.UseWebApi(config);

服务应显示在向 Eureka Server 注册的实例下

c# owin autofac netflix-eureka steeltoe
2个回答
0
投票

影响因素可能比您到目前为止所分享的还要多,因此我继续更新了 Steeltoe 示例之一,使其也可以与自托管的 OWIN 服务一起使用,这样您至少可以看到一个基本的工作示例。 https://github.com/SteeltoeOSS/Samples/tree/2.x/Discovery/src/AspDotNetAutofac

自托管 OWIN 可能很棘手,为了获得最佳结果,您可能根本不希望它在 IIS 下运行,因此请确保在开发过程中将其作为控制台应用程序运行(正如这个 Steeltoe 示例所做的那样)


0
投票

使用Eureka REST操作可以进行注册、注销等多种操作。这是官方文档的链接:

https://github.com/Netflix/eureka/wiki/Eureka-REST-operations

© www.soinside.com 2019 - 2024. All rights reserved.