0
我們有一個位於負載均衡器後面的WCF服務(NetTcpBinding
)。 I've read,爲了避免「stickyniss」,我已經降低了頻道獲取頻道池中的LeaseTime
。如何設置leaseTimeout設置programmaticaly?
我只找到了示例如何使用配置文件來設置此值,但我想設置它programmaticaly,任何指針?
我們有一個位於負載均衡器後面的WCF服務(NetTcpBinding
)。 I've read,爲了避免「stickyniss」,我已經降低了頻道獲取頻道池中的LeaseTime
。如何設置leaseTimeout設置programmaticaly?
我只找到了示例如何使用配置文件來設置此值,但我想設置它programmaticaly,任何指針?
您可以通過TcpTransportBindingElement
訪問LeaseTimeout
屬性,通過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);
這將應用設置應用程序範圍?我不必將此課程附加到我的綁定/頻道等? – Gidon
您需要將'netTcpBinding'轉換爲自定義綁定,然後直接訪問'TcpTransportBindingElement'。我已經用更多的信息更新了答案。 – carlosfigueira
非常好,謝謝你的例子! – Gidon