0

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 注册的实例下

4

1 回答 1

0

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

自托管 OWIN 可能会很棘手,为了获得最佳结果,您可能根本不希望它在 IIS 下运行,因此请确保在开发期间将其作为控制台应用程序运行(就像这个 Steeltoe 示例一样)

于 2019-09-12T21:01:08.603 回答