Office 365 EWS日历访问提供ErrorTooManyObjectsOpened

时间:2015-01-07 12:50:57

标签: java exchangewebservices office365

我们正在使用针对Office 365的Exchange Web服务(EWS)API在用户的日历中创建日历事件。这适用于内部部署,但通过Office 365部署,我们似乎很快就达到了限制限制。

创建16个事件后,在16个不同用户的日历中(从服务帐户,使用委托访问日历),我们收到以下错误:

  

ErrorTooManyObjectsOpened - 打开的并发连接数太多

大约5分钟后,此错误将清除,我们可以继续创建事件。似乎EWS服务器缓存了与邮箱的连接,而Office 365似乎一次只允许连接到16个邮箱。

我们已经尝试了很多来克服这个错误,但是还没有找到一个' final'解决方案或解决方法。我们尝试了什么:

  • 使用模拟而不是委托:这有效,但从安全角度来看是不行的。
  • 使用多个服务帐户:这是有效的,尽管每个帐户仍然限制为每5分钟约16个用户。
  • 我们尝试了X-AnchorMailboxX-PreferServerAffinity标头,我们在有和没有HTTP的情况下发出请求保持活动状态,并且有或没有保留HTTP cookie。这没有任何区别。从调试信息中我们看到,如果我们保留cookie /连接,我们通常会在同一个前端和后端服务器上结束,如果我们删除cookie但是发送{我们最终会在不同的前端{1}}标题。
  • 我们尚未尝试过REST API,因为client credential flow is not available yet

只有X-AnchorMailbox电话似乎会导致此问题,我们可以为许多用户执行CreateItems而不会达到限制。

是否有人知道克服此限制的方法,例如,我们可以执行一些调用来关闭Office 365端的缓存邮箱会话吗?或者是否有会议室中的Office 365管理员可以了解确切的限制限制,以及为什么它们比内部部署的Exchange限制限制低得多?

其他细节:我们正在使用EWS Java API的修改版本,但已经做了一些广泛的研究,并且非常确定这个问题是服务器端的。

1 个答案:

答案 0 :(得分:1)

很遗憾,您无法拨打电话来关闭连接。模拟是推荐的解决方案。从安全角度来看,这是一个“禁忌”,你能详细说明一下吗?