【问题标题】:Find unsubcribed subcriptions id from Exchange Web services从 Exchange Web 服务中查找未订阅的订阅 ID
【发布时间】:2016-07-08 07:05:42
【问题描述】:

我正在使用 Exchange Web 服务 (Exchange server 2010) 将用户的 Outlook 日历与我的应用程序同步。我实现了 EWS 推送通知,以便在 Outlook 用户创建、修改、删除事件时回调我的应用程序。我通过使用 EWS 订阅用户的电子邮件凭据来实现这一点。

客户端应用程序应在收到服务器回调时向服务器发送 OK 响应。如果一段时间内客户端应用程序没有 OK 响应,则特定订阅将自动取消订阅。

如果客户端由于任何意外原因在一段时间内无法访问,我需要仅订阅未订阅的用户,而不是订阅所有用户。

我现在的问题是如何从 EWS 获取未订阅的用户/或订阅 ID?我在 MSDN 文档中找不到任何有用的信息。

有人知道吗?

MSDN 参考 enter link description here

【问题讨论】:

    标签: c# web-services exchange-server exchangewebservices exchange-server-2010


    【解决方案1】:

    我相信这样做的唯一方法是使用StatusEvent (我称之为心跳)。订阅时,您设置一个参数以指示 EWS 多久向您的 Push HTTP 侦听器发布一次。 (我使用 3 分钟--YMMV。)所以在 3 分钟后(加上一点额外的可以确定),如果您没有收到来自 EWS 的消息,无论是通过 StatusEvent 或其他一些“真实”订阅事件,那么您应该重新订阅该用户。

    【讨论】:

    • 谢谢。是的,我也在考虑使用状态事件来记录时间戳。如果我无法从 EWS 听到超过 3 分钟的消息,那么我需要与特定用户再次订阅.但我想知道为什么 EWS 不保留对取消订阅 id 的任何引用?因为它现在保留订阅的 id 以便它可以回调客户端。
    • 我认为这只是节约资源的问题。如果它在 4 次尝试后仍无法向您发送通知,它会放弃您并转向它可以联系的人。请记住,客户端访问服务器有些不可靠——我见过很多它们崩溃或以其他方式丢弃订阅的情况。使用 Exchange Online,它变得非常疯狂。即使使用流式通知之类的东西,应用程序(即您的)有责任检测订阅何时可能无法达到预期并重新订阅。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 2019-02-12
    • 2017-08-26
    • 2017-06-09
    • 2020-10-26
    相关资源
    最近更新 更多