我有一个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;