我有一个客户机/服务器体系结构的.NET服务,客户机通过软件负载平衡器连接到服务器机器。我将HttpWebRequest.ServicePoint.ConnectionLeaseTimeout
属性设置为一个特定值,以便连接每隔一段时间终止,并且在服务器行为异常的情况下,SLB会给客户端一个新的连接到不同的(或可能相同的)服务器。HttpWebRequest底层连接关闭事件/通知
我的问题是:
是否有启动每当ConnectionLeaseTimeout
间隔耗尽得到通知的方式和新的服务器的新连接?我希望每次发生这种情况时都要记录新服务器的信息,以确保我确实正在更新连接,而不是仅仅持有某台计算机的时间超过了我应该的时间。
我希望有一些内置的支持这种情况下,我不必存储当前主机的信息,并不断检查每一次(每隔几个请求或每隔一段时间),我'与新服务器连接(通过与之前的比较)并跟踪变化的时间。即使我这样做了,也无法确定是否在两个连续的时间间隔内我连接到同一台服务器,因为我没有发布第一个连接,或者因为SLB给了我同一台服务器。
我明白了你的观点,但现在我只想记录可以在并发线程上发生的事件...为了给您更多的上下文,SLB人员声称我也坚持使用这些机器很长,我想向他们证明情况并非如此,SLB实际上一直在给我同样的机器。 – 2013-02-23 00:51:19
没有事件。你必须尝试发送连接上的东西,看看它是否仍然连接。如果它是http,你可能无法做到这一点。 – 2013-02-23 02:45:53
谢谢你们。只是想确保在实现某些功能之前没有开箱即用的解决方案...... – 2013-02-24 20:12:51