我在网上多次看过这个问题,但找不到答案。
当我使用托管EWS 2.0创建约会(会议)时,邀请电子邮件会正确显示时区和时区。当我更新会议时,新的邀请电子邮件会显示UTC时区的时间。这是UTC的正确时间,但应显示在太平洋。
我在创建服务连接时尝试过设置区域,但这会使初始邀请也显示时区为UTC,以及任何更新。
我已尝试设置StartTimeZone和EndTimeZone属性,并在绑定约会进行修改时将这些属性包含在属性集中。
是否有其他属性控制Exchange如何格式化发送邀请的时间?以下是一些显示我如何执行更新的代码:
Dim EWS As ExchangeService = GetEWSConnection(UserEmailAddress)
Dim meeting As Appointment = Appointment.Bind(EWS, New ItemId(CalendarEvent.ItemKey), New PropertySet(BasePropertySet.IdOnly, AppointmentSchema.Start, AppointmentSchema.End, AppointmentSchema.ReminderDueBy, AppointmentSchema.StartTimeZone, AppointmentSchema.EndTimeZone, AppointmentSchema.TimeZone, AppointmentSchema.Subject, AppointmentSchema.Location, AppointmentSchema.Body))
Dim timeZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(LocalTimeZoneID)
With meeting
.Subject = CalendarEvent.Subject
.Location = CalendarEvent.Location
.Body = CalendarEvent.Body
.Start = CalendarEvent.StartTime
.End = CalendarEvent.EndTime
.StartTimeZone = timeZone
.EndTimeZone = timeZone
' snip (removed attendee add/remove)
.Update(ConflictResolutionMode.AlwaysOverwrite, SendInvitationsOrCancellationsMode.SendToChangedAndSaveCopy)
End With
答案 0 :(得分:0)
我意识到这是一个令人沮丧的答案,但我认为这是一个Exchange错误。无论您如何调整API公开的各种时区属性,仍会出现此行为。据我所知,没有任何服务器级别的设置也会影响到这一点,尽管我承认并没有完全理解这些设置。
在我的情况下,似乎附加的UTC时间是在更新时消息从其原始HTML更改为纯文本版本。该错误(http://support.microsoft.com/kb/2689810)已修复,但我的组织尚未应用该修补程序。我想,有可能当另一个被修复时,这个bug已经过时了。如果在Exchange服务器上安装更新是一种选择,那么这可能值得一试。