Outlook 互操作 - MailItem.Sender 是 Hanging\Freeze

Outlook Interop - MailItem.Sender is Hanging\Freeze

我使用下面的 msdn link 中的代码,它在我的系统中运行良好以获取发件人电子邮件地址。但是,当我将相同的代码部署到我们的开发服务器之一时,下面的代码行 hangs\freeze 无限期地没有任何响应。跟踪之后,我发现如果访问了发件人对象的属性,它就会永远挂起。缓存交换模式打开"on"邮箱,在outlook 2010中是运行。我也手动从outlook下载了地址簿,但没有帮助。我相信这不是代码问题。有人可以帮忙吗?

https://msdn.microsoft.com/en-us/library/office/ff184624.aspx

sender.AddressEntryUserType == Outlook.OlAddressEntryUserType。 olExchangeUserAddressEntry || sender.AddressEntryUserType == Outlook.OlAddressEntryUserType。 olExchangeRemoteUserAddressEntry

Microsoft 目前不推荐也不支持从任何无人值守的非交互式客户端应用程序或组件(包括 ASP、ASP.NET 自动化 Microsoft Office 应用程序、DCOM 和 NT 服务),因为当 Office 在此环境中为 运行 时,Office 可能表现出不稳定的行为 and/or 死锁。

如果您正在构建 运行 在服务器端上下文中的解决方案,您应该尝试使用已针对无人值守执行安全设置的组件。或者,您应该尝试找到至少允许 运行 客户端部分代码的替代方案。如果您从服务器端解决方案使用 Office 应用程序,该应用程序将缺少许多 运行 成功所必需的功能。此外,您将承担整体解决方案稳定性的风险。在 Considerations for server-side Automation of Office 文章中阅读更多相关信息。

Outlook 所基于的低级别 API 支持 运行 服务中的代码。您可以使用任何语言来实现任务(C# 和 VB.NET)。但是微软官方不支持这样的solutions/code。如果您遇到任何问题,您将独自一人,但托管代码很有魅力。

另见 EWS Managed API, EWS, and web services in Exchange