使用自动发现刷新配置信息
了解如何以及何时使用自动发现刷新 Exchange 连接的配置信息。
首次运行 EWS 应用程序时,自动发现提供了一种很好的方式来收集连接到用户的 Exchange 邮箱所需的信息。 但自动发现不仅仅是首次使用。 通过使应用程序能够响应 Exchange 部署中的更改,定期使用自动发现有助于使应用程序保持连接。
缓存自动发现终结点和 EWS 设置
虽然我们建议你定期使用自动发现,但使用自动发现的频率需要一些考虑。 理想情况下,可以在快速响应环境中的变化与生成过多不必要的网络流量之间进行平衡。 当应用程序首次收到成功的自动发现响应时,应保存以下信息,以便每次发送 EWS 请求时不必重复自动发现过程。
表 1. 要缓存自动发现请求的信息
设置为缓存 | 对 有效... | 详细信息 |
---|---|---|
自动发现终结点 |
只要它有效 |
保存返回成功响应的自动发现终结点时,无需重复 生成自动发现终结点列表 并尝试它们的过程,直到收到成功的响应。 注意:EWS 托管 API 不支持缓存自动发现终结点。 |
从自动发现响应检索到的 EWS URL 和任何其他设置 |
一周 |
保存 EWS URL 和其他相关设置后,无需为每个 EWS 请求或应用程序重启 发送新的自动发现 请求。 但是,即使 EWS URL 适用于用户,服务器也可能更适合使用。 例如,用户的邮箱可能已移动到新的邮箱服务器,从而导致新的首选 EWS 终结点。 建议在自上次自动发现请求过一周后发送新的自动发现请求来刷新用户设置。 此时间可以调整以满足应用程序的要求。 |
刷新缓存的配置信息
现在,你已缓存了信息,让我们来看看如何使缓存保持最新。 建议在以下情况下刷新缓存的信息:
信息的有效期过期。
出现 与连接相关的错误 ,并且缓存的信息在一个多小时前进行了上次刷新。
若要刷新缓存的信息,请将自动发现请求发送到缓存的自动发现终结点,并执行以下操作:
如果请求成功,请将响应中的 EWS 终结点与缓存的 EWS 终结点进行比较,并执行以下操作:
如果它们不同,请使用新的 EWS 终结点。 如果要刷新以从错误中恢复,请使用新终结点重试失败的请求。
如果它们相同,请继续使用原始 EWS 终结点。 如果要刷新以从错误中恢复,请根据需要处理错误。
如果请求失败,请从头开始 自动发现过程 。 成功响应后,将缓存的自动发现终结点替换为成功的自动发现终结点,并继续使用新的 EWS 终结点。 如果未获得成功的响应,请继续使用原始的自动发现终结点和 EWS 终结点。 如果要刷新以从错误中恢复,请根据需要处理错误。
下图提供了此过程的直观表示形式。
图 1. 使用自动发现刷新配置信息的过程
与连接相关的错误
刷新缓存的配置信息有助于解决一些错误,但并非全部错误。
表 2. 通过刷新缓存解决的错误
错误 | EWS 托管 API 实现 | 注意 |
---|---|---|
DNS 或网络故障错误 示例:找不到主机名。 |
ServiceRemoteException |
任何指示找不到或无法访问服务器的错误都可以通过尝试自动发现来解决。 缓存的 EWS 终结点可能不再有效,并且自动发现可能能够将你指向新服务器。 |
HTTP 状态错误 示例:503 服务不可用 |
ServiceRemoteException |
HTTP 状态错误可能由于多种不同原因而发生。 但是,最好尝试自动发现来查看是否有新的 EWS 终结点可供用户使用。 |
EWS 错误代码 示例:ErrorConnectionFailed |
ResponseCodeType |
大多数 EWS 错误代码不保证刷新配置信息。 但是,以下内容明确指示需要更新配置信息: - ErrorConnectionFailed - ErrorMailboxMoveInProgress |