我遇到了一个之前在这里和其他地方报告过的问题:无法通过 EWS 更改主服务器上的重复模式。首先,我尝试对 E2010 使用旧的代理类。我现在也尝试使用 2.0 托管 API,但无济于事。错误 FWIW 是“设置操作对属性无效”。例如,我想更改重复结束日期或重复次数。
在 2008 年的 MSDN 帖子中,Dave Stirling 提到只有组织者才能做到这一点。这对我来说是个问题,因为我的服务器应用程序使用单一的、完全访问的 id 来管理企业中的所有房间资源日历。有了这个用户,我可以删除任何日历上的约会,而不管组织者是谁,我当然可以更新重复系列的单个实例,例如更改其开始时间。我不明白为什么会禁止操纵重复模式,因为在操纵日历上的实例位置时我不是组织者,或者不会删除整个系列。
我也尝试过使用模拟,所以我(我认为)模拟房间资源本身,在这种情况下,即使我不是组织者,我觉得我必须是约会的所有者,因此有权做任何事情哎呀,我想要它。我猜 Exchange 感觉不一样。下面的托管 API 代码,FWIW。
TIA,保罗
var Svc = new ExchangeService(ExchangeVersion.Exchange2010, TimeZoneInfo.Local);
Svc.CookieContainer = new CookieContainer();
Svc.Credentials = new WebCredentials(m_SvcUser, m_SvcPswd);
Svc.EnableScpLookup = false;
Svc.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, m_RoomMB);
Svc.AutodiscoverUrl(m_RoomMB, RedirectionCallback);
var Master = Appointment.Bind(Svc, new ItemId(args[0]), m_Props);
if (Master.Recurrence.NumberOfOccurrences != null)
Master.Recurrence.NumberOfOccurrences--;
else
Master.Recurrence.EndDate = DateTime.Now;
Master.Update(ConflictResolutionMode.AlwaysOverwrite, SendInvitationsOrCancellationsMode.SendToNone);