网络服务没有从OWIN SelfHosted控制台应用程序向Eureka服务器注册,而Steeltoe/Autofac库作为Windows服务运行。
//container.StartDiscoveryClient();确实在另一个ASP.net应用程序中注册到尤里卡服务器,但不是在上述控制台应用程序中。
服务在Postman中正确运行,作为客户端获得我们正在寻找的响应。
Startup.cs:
ApplicationConfig.RegisterConfig("development");
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的实例下
发布于 2019-09-13 05:01:09
到目前为止,可能还有更多的因素在起作用,所以我继续更新了Steeltoe示例之一,使其也可以与自托管OWIN服务一起使用,这样您至少可以看到一个基本的工作示例。https://github.com/SteeltoeOSS/Samples/tree/2.x/Discovery/src/AspDotNetAutofac
自托管OWIN可能很棘手,为了获得最佳效果,您可能根本不希望它在IIS下运行,因此请确保在开发过程中将其作为控制台应用程序运行(就像本Steeltoe示例所做的那样)
https://stackoverflow.com/questions/57878322
复制相似问题