【发布时间】:2017-03-07 23:46:46
【问题描述】:
每当我尝试解析无状态服务的端点时,我似乎不断收到“未找到服务”。我曾尝试使用服务分区解析器和服务代理,但它们都产生相同的结果。 Service Fabric 是否有限制,或者我是否误解了应该如何使用无状态服务?我找不到任何说明任何一种方式的文档。
更详细地说明我正在尝试做的事情。我正在构建一个 Api 网关。 Api Gateway 由 RegistryService 和 RoutingService 组成。
我有多个服务结构应用程序,其中一些具有使用 WebApi 和 Owin 的“前端”无状态服务。在启动时,这些服务会将它们的路由注册到 RegistryService。
网关使用 Registryservices 来确定将请求定向到的服务。此时我正在尝试解决所述服务的端点,但没有这样做。但是,如果我将路由更改为有状态的后端服务,它就可以正常工作。
任何想法都会很有帮助
【问题讨论】:
-
首先要检查的是您使用了正确的服务名称(fabric:/yourapp/yourservice)。第二件事是分区类型。无状态服务通常使用 Singleton 分区方案创建,因此请确保 ResolveAsync() 请求相同的分区方案。您说当您切换到有状态服务时它可以工作的事实让我认为您在调用 ResolveAsync 时传递了一个 Int64 分区键。
-
感谢@VaclavTurecek。我在为无状态分配单例和用于有状态服务的 int64 分区键中有一个案例语句。在过去的两天里,我已经检查了很多东西。以 3/4 种不同的方式重写中间件。
-
我使用的是默认解析器。这有关系吗?
标签: c# asp.net-web-api service azure-service-fabric service-fabric-stateful