我们有一个带有3个节点的内部服务结构集群,使用5.6.220.9494运行时进行部署 . 我们使用SDK 2.6最新的Nuget引用开发了一组无状态服务 . endpoints 使用Http协议 . 使用Active Directory组保护群集 . 我们已经在一些服务上实现了RunAs策略 .

每个服务都实现一个HealthCheck方法,该方法确认 endpoints 是可访问的并且用户已被识别 .

我们遇到了以下可重复的行为:直接使用服务 endpoints 并通过Fiddler请求反复命中它,以便http://ourcluster.ourdomain.com:20015/OurService/Service/HealthCheck服务完美地工作,我们没有得到任何失败的请求 . Http状态代码为200,响应符合预期 .

直接使用反向代理服务 endpoints 并通过Fiddler请求反复命中它,该服务将成功获得10个请求中的7个,然后我们连续获得3个HTTP状态400失败 . 这是可重复的 .

当然,这意味着30%的集群请求将失败,这是完全不可接受的 .

我们尝试了各种安全组合 - 使用RunAs策略的不安全集群和不使用RunAs策略(然后在网络服务/本地系统凭据下运行) .

即使我们删除并重新创建群集或删除并重新部署应用程序服务,此行为仍将持续存在 .