我们有一个带有3个节点的本地Service Fabric Cluster,使用5.6.220.9494运行时部署。我们使用SDK 2.6最新的Nuget引用开发了一组无状态服务。端点使用Http协议。使用Active Directory组保护群集。我们已经在一些服务上实施了RunAs策略。
每个服务都实现一个HealthCheck方法,该方法确认端点是可访问的并且用户已被识别。
我们遇到以下可重复的行为: 直接使用服务端点并通过Fiddler请求重复命中它http://ourcluster.ourdomain.com:20015/OurService/Service/HealthCheck该服务完美运行,我们没有得到失败的请求。 Http状态代码为200,响应符合预期。
直接使用反向代理服务端点并通过Fiddler请求重复命中http://ourcluster.ourdomain.com:19081/OurService/Service/HealthCheck该服务将成功获得10个请求中的7个,然后我们连续获得3个HTTP状态400失败。这是可重复的。
当然,这意味着30%的群集请求会失败,这是完全不可接受的。
我们尝试了各种安全组合 - 使用RunAs策略的不安全集群和不使用RunAs策略(然后在网络服务/本地系统凭据下运行)。
即使我们删除并重新创建群集或删除并重新部署应用程序服务,此行为仍将持续存在。