c# - 可以在运行时更改 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;
解决方案
推荐阅读
- python - 为什么我得到 AttributeError:'str' 对象没有属性 'strftime'?
- java - 在 Java 中读取 JSON 属性
- swift - 通过 Swift BLE 连接到 Metawear
- database - 如何将数据插入 SQL 数据库?
- c - c 中用空格分隔的 2 个字符串的输入
- google-sheets - 谷歌表格中的简单甘特图,具有月到月的范围
- javascript - 如何 module.exports 另一个模块?
- python - 具有多项式特征的梯度下降实现问题
- javascript - 如何将现有表包含到导出函数中?
- html - 在我的网站上放低一点的文字