我有一个显示多个用户日历约会的网页(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的往返行程,而不是返回的数据量。考虑到这一点,是否可以对可以接受多个文件夹ID并为多个用户返回日历约会的EWS进行 单 调用?