我们有一个位于负载均衡器后面的WCF服务(NetTcpBinding
)。 I've read为了避免“stickyniss”,我降低了频道池中频道的LeaseTime
。
我只找到了如何使用配置文件设置此值的示例,但我想设置programmaticaly,任何指针?
答案 0 :(得分:2)
您可以通过LeaseTimeout
通过TcpTransportBindingElement
媒体访问ConnectionPoolSettings
媒体资源:
TcpTransportBindingElement tcpBE = new TcpTransportBindingElement();
tcpBE.ConnectionPoolSettings.LeaseTimeout = TimeSpan.FromSeconds(1);
如果您有NetTcpBinding
个对象,则需要先将其转换为CustomBinding
,然后访问绑定元素。下面的例子显示了这样做的一种方法。
NetTcpBinding myOriginalBinding = CreateBinding();
CustomBinding newBinding = new CustomBinding(myOriginalBinding);
TcpTransportBindingElement tcpBE = newBinding.Elements.Find<TcpTransportBindingElement>();
tcpBE.ConnectionPoolSettings.LeaseTimeout = TimeSpan.FromSeconds(1);