首页 > 解决方案 > 可以在运行时更改 WCF 不活动超时吗?

问题描述

我有一个使用可靠会话的 WCF 服务和客户端。在创建服务期间将不活动超时设置为 1 分钟,但我需要在运行时动态更改此超时,例如,一段时间为 10 分钟,然后再设置回 1 分钟。

我尝试在创建服务之前更改超时间隔。这当然有效,尽管我无法在运行时更改它。我还尝试同时增加另一个超时,例如发送、接收和操作,但没有帮助。

所以问题是 - 是否有可能在运行时更改不活动超时?如果是这样,我应该更改任何其他超时以使其正常工作吗?

我在我的一种合约实现方法中更改了超时,就像这样。尽管超时正确设置为 10 分钟,但它的行为仍然与默认超时相同。

var binding = OperationContext.Current.Host.Description.Endpoints.First().Binding as CustomBinding;
binding.Elements.Find<ReliableSessionBindingElement>().InactivityTimeout = TimeSpan.FromMinutes(10);
OperationContext.Current.Host.Description.Endpoints.ToList().First().Binding = binding;

标签: c#wcftimeout

解决方案


推荐阅读