1

我有一个显示多个用户日历约会的网页 (ASP.Net)。目前,我正在通过对 Web 服务进行异步调用来获取数据,该 Web 服务又使用类似于以下的代码调用现场 EWS:

        var userMailbox = new Mailbox("user1@example.com");
        var folderId = new FolderId(WellKnownFolderName.Calendar, userMailbox);

        DateTime startDate = DateTime.Now.Date;
        DateTime endDate = startDate.Date.AddDays(5);

        CalendarView cView = new CalendarView(startDate, endDate);
        cView.PropertySet = new PropertySet(AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.End);

        var appointments = _Service.FindItems(folderId, cView);

        //Do something with results

此解决方案确实有效,但速度非常慢。对 EWS 的每次调用大约需要 800 毫秒才能完成。如果我触发 10 个异步请求,EWS 似乎会将它们排队并一次处理一个,这意味着完全更新具有 10 个邮箱的页面大约需要 8 秒。

我无法更改 EWS 配置的任何方面。

瓶颈似乎在于 EWS 的往返行程,而不是返回的数据量。考虑到这一点,是否可以对 EWS 进行一次调用,该调用可以接受多个文件夹 ID 并返回多个用户的日历约会?

4

0 回答 0