Мы проводим некоторую оптимизацию нашего приложения, которое интенсивно использует EWS, и один момент касается очистки подписок, которые больше не нужны. Мы используем тип PullSubscription, поэтому первым делом я убедился, что для каждой подписки должен быть вызван метод Unsubscribe.
К моему удивлению, согласно счетчикам производительности Exchange, количество подписок после вызовов Unsibscribe уменьшается только на несколько подписок, но не до 0 (в целях тестирования я звоню Unsubscribe для всех открытых подписок). Например, у нас есть 200 почтовых ящиков на каждые 3 подписки (каждая для разных типов элементов: электронные письма, встречи и т. Д.), Что равняется 600 активным подпискам. И после отмены звонков (для всех 600 из них) счетчики показывают, что только 10 или около того подписок были удалены. Если мы запускаем наше приложение несколько раз, количество подписок увеличивается с каждым разом.
Так Exchange каким-то образом буферизирует, задерживает или делает что-либо с этими подписками? Достаточно ли звонка Unsubscribe или я должен сделать что-то дополнительное, чтобы быть уверенным, что подписка удалена и не зависает на ресурсах сервера? Или, может быть, речь идет о конфигурации сервера и о том, как работает сервис EWS?
Конечно, документация EWS так громка об этом, как и в большинстве других случаев (что означает только базовую ссылку на класс, никаких возможных решений проблем, ничего полезного в решении проблем), поэтому я надеюсь, что кто-то здесь подскажет мне некоторые подсказки.