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 注册的实例下
影响因素可能比您到目前为止所分享的还要多,因此我继续更新了 Steeltoe 示例之一,使其也可以与自托管的 OWIN 服务一起使用,这样您至少可以看到一个基本的工作示例。 https://github.com/SteeltoeOSS/Samples/tree/2.x/Discovery/src/AspDotNetAutofac
自托管 OWIN 可能很棘手,为了获得最佳结果,您可能根本不希望它在 IIS 下运行,因此请确保在开发过程中将其作为控制台应用程序运行(正如这个 Steeltoe 示例所做的那样)
使用Eureka REST操作可以进行注册、注销等多种操作。这是官方文档的链接:
https://github.com/Netflix/eureka/wiki/Eureka-REST-operations