我一直在使用 WS2007FederationHttpBinding 开发 WIF 安全 WCF 服务。所有这些在开发中都可以正常工作,但是当我转到系统测试时,服务托管在 F5 后面,使用 F5 地址调用服务失败
无法连接到 http:///myservice/service.svc。TCP错误码10060:连接尝试失败,因为连接的一方在一段时间后没有正确响应,或者连接的主机没有响应,建立连接失败
系统测试环境在池中配置了 3 个成员。如果我将客户端配置为直接在应用服务器地址连接到服务,则一切正常。如果我重新配置以连接到 F5 地址,则会出现上述问题。
我正在使用自定义服务主机从数据库中的配置信息配置服务。在服务上,我将listenuri 配置为http://[appserverhostname]/myservice/service.svc,并将端点地址配置为http://[f5 dns]/myservice/service.svc。我无法在服务端看到任何活动,尽管我目前无权打开日志记录(正在处理此问题)。
不寻常的是,有时第一个请求会返回 TCP 错误,随后的请求会成功。一段时间后,此序列将再次出现,这表明它在某种程度上与超时有关。我尝试了对池设置的一些修改,包括从池中删除特定成员、将池配置为拥有 1 个成员以及在池中唯一的成员上运行服务和客户端,但无法获得一致的结果。
该服务使用自发证书进行保护,客户端仅使用 DNSIdentity(带有证书的 CN)作为其身份。
当 WCF 服务在 F5 后面进行负载平衡时,这种情况下的配置有什么问题导致调用 WCF 服务失败?
更新:我应该提到池中有 3 台服务器,当我尝试从其中一台服务器(即服务器 1)浏览服务地址时,在通过 IE 中的互联网安全设置后,标准服务页面显示(并且 wsdl url 表明它正在访问其他服务器之一 - 即服务器 2)。所以地址可以在浏览器级别很好地解析。