gpt4 book ai didi

c# - Exchange 失去连接时不触发 Outlook 事件

转载 作者:行者123 更新时间:2023-11-30 15:37:26 27 4
gpt4 key购买 nike

我们最近注意到 Outlook 2007 事件发生的一个问题,导致它在 Exchange 连接丢失然后恢复时不触发事件。如果你attach a listenerFolder.Items.ItemAdd事件,事件将在 Exchange 从离线切换到在线后断开连接。为了重现这一点 - 我们移除了以太网电缆的进出以模拟短暂的连接丢失。

如果您不能保证在 Exchange 连接中断时会触发事件,这确实会使构建插件变得困难 - 在远程办公室操作时尤其常见。我们没有使用缓存交换模式。

是否有人对他们是否是解决方法或如何知道我们何时需要重新建立事件监听器有任何反馈?使用缓存交换模式是一种解决方案吗?或者有没有certain events which you just can't use reliably

doesn't appear to be an event trigger for when Exchange connectivity is lost .也许这里唯一的解决方法是使用某种计时器来实现可靠的事件行为。

public partial class ThisAddIn
{
Outlook.Items sentItems;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Outlook.Folder sentFolder = ThisAddIn.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail);
sentItems = sentFolder.Items;
sentItems.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(SentItems_ItemAdd);
}
void SentItems_ItemAdd(object Item)
{ // breakpoint never hit after Exchange connectivity is lost
Outlook.MailItem mailItem = Item as Outlook.MailItem;
}
}

最佳答案

解决此问题后,发现某些事件在您失去与 Exchange 的连接后无法重新建立Application.Explorers.NewExplorer 等事件和 Application.Inspectors.NewInspector不受 Exchange 连接的影响,但 Folder.Items.ItemAdd是。也许这是由于 Folder的继承 MAPIFolder.Items .

重新建立事件触发器的唯一解决方案是定期重新连接事件 ( since we don't have an event to tell us when Exchange is unavailable ) 或在用户启动的操作期间重新附加事件,例如 NewInspectorMailItem.Send .

MSDN Forums recommends you don't use the ItemAdd event仅旨在通过 UI 使用。

关于c# - Exchange 失去连接时不触发 Outlook 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12605604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com