0

我们有一个适用于 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。

4

1 回答 1

1

如果问题与用户计算机隔离,我们始终建议我们的 IT 人员共享O365 Outlook 诊断工具,该工具分析 Outlook 安装、数据文件、插件、缓存并执行检查以识别客户端计算机上的问题来源。

于 2021-02-01T23:25:43.047 回答