【发布时间】:2013-11-18 14:49:19
【问题描述】:
在我的程序中使用 Outlook 互操作时出现间歇性错误。我时不时地让用户报告此错误,但我无法重现。更奇怪的是,如果他们重新启动程序再试一次,错误就消失了。
这是我用来获取 Outlook 引用的代码。
public class CommonStuff
{
public static void Initialize()
{
olk = new Microsoft.Office.Interop.Outlook.Application();
olk.ItemSend += new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_ItemSendEventHandler(OutlookInterop_ItemSend);
}
public static Microsoft.Office.Interop.Outlook.Application GetOutlook()
{
if (Process.GetProcessesByName("OUTLOOK").Count() == 0) //previous attempt at fixing this issue, and i'm not sure if i even need this
{
olk = new Microsoft.Office.Interop.Outlook.Application();
}
return olk;
}
}
以及发送实际电子邮件时使用的代码。
public void SendEmail()
{
Microsoft.Office.Interop.Outlook.MailItem eMail = (Microsoft.Office.Interop.Outlook.MailItem)CommonStuff.GetOutlookApp().CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
eMail.Subject = String.Format("Subject");
eMail.To = "email@things.com";
eMail.Companies = "Company";
eMail.Body = "blah blah blah";
eMail.Attachments.Add(GetCrystalReportPDF());
((Microsoft.Office.Interop.Outlook._MailItem)eMail).Display();
}
不幸的是,我不知道错误到底发生在哪里,因为我无法重现该错误。有人知道发生了什么吗?
【问题讨论】:
-
我没有解决方案,但我很同情......因为我最近在另一个上下文中遇到了完全相同的错误。本文将提供一些见解:social.technet.microsoft.com/wiki/contents/articles/… 至少,关于使用wireshark 检查网络跟踪的部分对我很有用...
标签: c# outlook office-interop