我应该在使用托管API时何时刷新EWS URL

时间:2017-12-05 06:37:13

标签: c# exchange-server exchangewebservices autodiscovery

我收到的EWS网址如下:

var response = myAutodiscoverService.GetUserSettings(
                        "userA@domain.com",
                        UserSettingName.ExternalEwsUrl,
                        UserSettingName.InternalEwsUrl,
                        UserSettingName.EwsSupportedSchemas);

string settingValue;
if (response.TryGetSettingValue(UserSettingName.ExternalEwsUrl, out settingValue)
    || response.TryGetSettingValue(UserSettingName.InternalEwsUrl, out settingValue))
{
    // If ExternalEwsUrl is not returned in the response, 
    // we consider InternalEwsUrl for auto-discover
    string ewsurl = settingValue;
}

现在,我正在缓存此ewsurl,因为自动发现非常慢,我建议使用此请求。当这个ewsurl到期时会发生什么(因为让我们说用户的邮箱被移动到另一个端点)。为了实现失败机制以获取新更新的ews url,我应该期待什么错误?

编辑:我正在使用ews网址使用ExchangeService.SubscribeToPushNotifications订阅EWS上的新邮件事件所以我还有另外一个问题,假设在用户订阅通知后ews网址被更改,我是否会收到通知该用户在我的应用程序的回调网址上发送新邮件事件?

1 个答案:

答案 0 :(得分:0)

我似乎记得MSFT的ROT是你应该每24小时重新发现一次,但我最近没有看到任何东西。至于推送通知:由于推送通知中存在“心跳”功能,如果您连续错过两次心跳,可以肯定地说您应该拆除订阅并重新订阅,这是安全的,意味着重新订阅自动发现。当然,对于O365,由于EWS URL(现在)看起来总是相同的,因此重新发现不再是一个问题。