【问题标题】:Getting Exchange Appointments by ICalUid?通过 ICalUid 获得交换约会?
【发布时间】:2012-07-13 20:40:41
【问题描述】:

所以我正在使用给定的 IcalUid 创建 Exchange (2007) 约会:

var app = new Appointment(svc);
app.ICalUid = id;
app.Subject = "Test Appointment";
app.Recurrence = new Recurrence.DailyPattern(DateTime.Now, 3);
app.RequiredAttendees.Add("mstum@example.com");
app.AllowNewTimeProposal = false;
app.Body = new MessageBody(BodyType.HTML, "This is a <b>Test!</b>");
app.Save();

稍后,我想更新那个约会,此时我需要通过 ICalUid 找到它。

但是,似乎没有办法做到这一点?我只能针对 Exchange ID 使用 Appointment.Bind,而我在更新时没有(存储它是非常不切实际的)

我可以使用相同的 ICalUid 创建一个新约会,它的行为类似于更新,但要求再次接受/拒绝,而不是仅显示“不需要更新”。

有什么合适的方法吗?

【问题讨论】:

    标签: .net exchange-server exchangewebservices exchange-server-2007


    【解决方案1】:

    【讨论】:

    • 谢谢,即使我删除了重复出现,它似乎也没有找到它:( ICalUid 应该采用什么格式?我以前一直在使用 Guid,但这会引发异常在GetObjectIdStringFromUid 方法中。使用像012345 这样的十六进制字符串不会引发异常,但也找不到约会。
    • 我认为您必须将其编码为 Base64 - 它在其中一个链接中提到..social.technet.microsoft.com/Forums/en/exchangesvrdevelopment/…
    • 那也不行 :( 用 OutlookSpy 看,我也看不到任何字段中的 iCalUid,但这并不意味着太多。不过,Exchange 没有好像没找到。
    • 你能扩展你的示例代码吗?例如向我们展示您的 id 是什么样子的……您是否每次都在动态生成一个唯一的 GUID ?您是否使用包含破折号的 GUID 字符串?还是你把它们去掉?也许您应该在创建约会时仅指定 id 的十六进制代码,例如000C020304等最后,看看这个....d-push.sourcearchive.com/documentation/1.5.3-1/… ....可能会提供一些线索。
    • 这是另一个执行 FindItems 的示例。 archive.cnblogs.com/a/2173625
    【解决方案2】:

    2007 年似乎根本没有办法。

    【讨论】:

      【解决方案3】:

      【讨论】:

      • 这似乎没有办法为 iCal UID(或其他任何东西)指定过滤器
      • 是的,唯一可用的搜索方法似乎是按日期范围。当您需要更新时,您有哪些有关约会的上下文信息?您能否按日期进行搜索,然后遍历结果直到找到您的 ID?我知道不太好。
      猜你喜欢
      • 2016-02-15
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 2017-07-21
      • 2022-01-15
      相关资源
      最近更新 更多