【问题标题】:Outlook VSTO error when saving appointment item保存约会项目时出现 Outlook VSTO 错误
【发布时间】:2021-02-02 23:39:46
【问题描述】:

我们有一个适用于 Outlook 的 VSTO 插件,它支持预订由我们的云系统管理的资源。 此外,我们还支持在 Exchange 中作为房间提供的资源,以支持与其他系统的集成。

当我们执行此类房间的预订时,加载项会将房间对应的 Exchange 电子邮件地址添加给收件人,因此它也会在 Exchange 中预订。

这曾经可以正常工作,但现在我们收到了客户的报告,称他们无法再通过 Exchange 集成为资源创建预订。他们收到的错误完全没有帮助:

System.ArgumentException: Der gik desværre noget galt. Du kan prøve igen.
   ved Microsoft.Office.Interop.Outlook._AppointmentItem.Save()

(英文:“出了点问题。你可以再试一次”)

当加载项在添加一些自定义属性后尝试保存项目时会发生这种情况。我认为错误是由将 Exchange 房间添加到收件人的加载项触发的,因为没有 Exchange 集成的资源不会发生这种情况。

这是我们用来添加收件人的代码:

var rec = ...;  // custom DTO with recipient info
string recipientInfo = string.IsNullOrEmpty(rec.Email) 
                       ? rec.OutlookName 
                       : rec.Email;

var recRecip = appointment.Recipients.Add(recipientInfo);
recRecip.Type = rec.RecipientType;

if (Current.Settings.IsEnabled(FeatureFlag.ResolveAddedRecipients))
{
     using (LogHelper.TimedTask($"resolving recipient [{rec}]", Log))
     {
          recRecip.Resolve();
     }
}

我可以从日志中看到,房间收件人有电子邮件地址,所以上面的代码将通过电子邮件添加。此外,解析收件人的功能标志已启用,因此代码将在之后调用resolve。

这里可能出了什么问题?

编辑:他们的 Outlook 版本是 16.0.0.5071。

【问题讨论】:

  • AppointmentItem 来自哪里?您是否在 Outlook 保存约会后立即修改并保存约会?
  • @DmitryStreblechenko AppointmentItem 来自 Explorer 对象。用户在 Outlook 中创建或编辑会议时使用我们的加载项执行预订。该错误发生在用户保存并发送会议请求之前。
  • 您使用的是单个实例或约会还是重复约会的实例?
  • @DmitryStreblechenko 抱歉回复晚了,圣诞节假期等等。这是一次约会(准确地说是会议),而不是定期约会的实例。

标签: outlook vsto outlook-addin outlook-object-model


【解决方案1】:

如果问题与用户的计算机有关,我们始终建议我们的 IT 人员分享O365 Outlook Diagnostics Tool,它会分析 Outlook 安装、数据文件、插件、缓存并执行检查以确定客户端计算机上的问题来源。

【讨论】:

  • 客户反馈说,问题已通过删除 Outlook 配置文件并创建一个新配置文件得到解决。所以这确实是该安装的本地问题,与我们的加载项无关。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多