【发布时间】:2011-08-24 21:07:23
【问题描述】:
我正在尝试使用以下代码连接并使用 C# 和 Exchange Web 服务从收件箱中的电子邮件下载附件,但我收到“System.ArgumentOutOfRangeException”错误,我不明白为什么。我已经用谷歌搜索了一个答案,但我找不到答案,或者我找到的答案是针对非常旧版本的 EWS。
我知道其余代码通常可以正常工作,因为我可以访问与电子邮件相关的其他信息,但不能访问附件。
谁能告诉我我的方法的错误?
提前致谢,
詹姆斯
static void Main(string[] args)
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Credentials = new NetworkCredential("MYLOGIN", "MYPASSWORD", "MYDOMAIN");
service.Url = new Uri("https://MYMAILSERVER/EWS/Exchange.asmx");
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(1000));
foreach (Item item in findResults.Items)
{
if (item.HasAttachments && item.Attachments[0] is FileAttachment)
{
FileAttachment fileAttachment = item.Attachments[0] as FileAttachment;
fileAttachment.Load("C:\\temp\\" + fileAttachment.Name);
}
}
}
}
已解决但新问题
我现在通过将“foreach(findResults.Items 中的项目项)”更改为“foreach(findResults.Items 中的EmailMessage 项)”对问题进行了排序,但现在我需要了解如何枚举附件 - 任何有什么想法吗?
【问题讨论】:
-
你从哪里得到异常?什么参数超出范围?该信息通常是异常的一部分。
-
这是一个超出索引的错误。我现在通过将“foreach(findResults.Items 中的项目项)”更改为“foreach(findResults.Items 中的EmailMessage 项)”对问题进行了排序
-
异常的“InnerException”部分可能也值得一看以获取此类信息