EWS を多用するアプリの最適化を行っており、もう 1 つのポイントは、不要になったサブスクリプションをクリーンアップすることです。PullSubscription タイプを使用しているため、当然ながら最初に行ったのは、削除するサブスクリプションごとに Unsubscribe メソッド呼び出しがあることを確認することでした。
驚いたことに、Exchange パフォーマンス カウンターによると、Unsibscribe 呼び出し後のサブスクリプションの数は、0 ではなくいくつかのサブスクリプションだけ減少します (テスト目的で、開いているすべてのサブスクリプションに対して Unsubscribe を呼び出します)。同様に、3 つのサブスクリプションごとに 200 のメールボックスがあり (それぞれが異なる種類のアイテム (メール、予定など) に対応)、これは 600 のアクティブなサブスクリプションに相当します。そして、登録解除の呼び出し (600 件すべて) の後、カウンターは 10 件程度の登録のみが削除されたことを示しています。アプリを数回実行すると、毎回サブスクリプションの数が増えます。
では、Exchange はこれらのサブスクリプションに対して何らかの方法でバッファリングや遅延を行ったり、何らかの処理を行ったりするのでしょうか? Unsubscribe 呼び出しで十分ですか、それともサブスクリプションが削除され、リソースを消費するサーバーでハングしていないことを確認するために何か追加する必要がありますか? それとも、サーバーの構成と EWS サービスの仕組みに関するものでしょうか?
もちろん、EWS のドキュメントは、他のほとんどの場合と同じように (基本的なクラス参照のみであり、考えられる問題の解決策はなく、問題の解決に役立つものは何もないことを意味します) それについて非常に積極的です。