Я установил свойство ServicePoint.ConnectionLeaseTimeout
при запуске моего веб-API, чтобы соединения регулярно обновлялись для сценариев балансировки нагрузки с помощью ServicePointManager.FindServicePoint
.Но я обнаружил, что через некоторое время после использования HTTP-соединений для ServicePoint значение ServicePoint.ConnectionLeaseTimeout
изменилось с моего заданного значения на значение по умолчанию -1.Я определенно не устанавливаю ServicePoint.ConnectionLeaseTimeout
на -1 где-нибудь в моем коде, и другие настроенные мной точки обслуживания, которые не использовались для каких-либо соединений, все еще имеют настроенное значение.Итак, я должен предположить, что первоначально настроенная ServicePoint была удалена и заменена новым объектом ServicePoint, где свойство ServicePoint.ConnectionLeaseTimeout
имеет значение по умолчанию.
Я знаю, что ServicePoints могут быть удалены при ServicePointManager.MaxServicePoints
превышено, но в моем приложении ServicePointManager.MaxServicePoints
установлено в 0 (неограниченно).Я также знаю, что ServicePoint может быть удален после превышения ServicePointManager.MaxServicePointIdleTime
, но я устанавливаю его в int.MaxValue (~ 25 дней), и это время точно не прошло.
У кого-нибудь естьдругую информацию о том, как управлять жизненным циклом ServicePoint и как лучше управлять конфигурацией ServicePoint (в частности ConnectionLeaseTimeout), не просто находя ServicePoint при запуске приложения и устанавливая его один раз?