Так что я в настоящее время создаю приложение, которое позволяет группе пользователей просматривать все электронные письма с определенного адреса электронной почты. Все это работает правильно. Проблема, с которой я сталкиваюсь, возникает, когда я пытаюсь получить вложения.Получение вложения с использованием EWS и C# с ошибкой ServiceMethodException
Я относительно новый для этой области и использовал пример от Microsoft нашел here. Сравните это мой код ниже:
protected internal override Stream GetAttachmentStreamFinal(MailAttachmentDetails attachment)
{
var response = m_service.GetAttachments(new[] { attachment.Id }, BodyType.Text, Enumerable.Empty<PropertyDefinitionBase>());
if (response.OverallResult != ServiceResult.Success)
{
if (response.Count > 0)
{
var ex = new MailException(response[0].ErrorMessage);
ex.Data.Add(response[0].ErrorCode, response[0].ErrorMessage);
foreach (var ed in response[0].ErrorDetails)
{
ex.Data.Add(ed.Key, ed.Value);
}
throw ex;
}
throw new MailException("Error occurred while fetching the attachment from the mail service.");
}
foreach (var attachmentResponse in response)
{
if (attachmentResponse.Attachment is FileAttachment)
{
var fa = attachmentResponse.Attachment as FileAttachment;
var cs = new MemoryStream(fa.Content);
fa.Load(cs);
cs.Seek(0, SeekOrigin.Begin);
return cs;
}
}
return null;
}
Как вы можете видеть оба набора кода очень похож. Однако, когда я пошагово и добраться до attachmentResponse.Attachment это FileAttachment линии я получаю эту ошибку брошенную
Покушение методом «Mail.ExchangeEmailService.GetAttachmentStreamFinal (Mail.MailAttachmentDetails)» для метода доступа «Microsoft.Exchange.WebServices .Data.GetAttachmentResponse.get_Attachment() 'не удалось.
Все проходит правильно и ответ возвращается как успех.
Я заметил, когда я прошел через свой код, который приложение показывает как непубличный. Но поскольку это инкапсулировано в классе Microsoft, я не уверен, почему это так или что я могу сделать?
Вы делаете это из почтового приложения (который работает внутри Outlook)? Образец, который вы связали, предназначен для почтовых приложений и сложнее обычного приложения EWS. –
Это не работает в веб-приложении. и это используется, когда клиент запрашивает файл – Major
. Я также сталкиваюсь с той же проблемой, пока я использовал последнюю версию формы сборки nuget, но когда я ссылаюсь на сборку после установки с [MSI] (http://www.microsoft.com /en-us/download/details.aspx?id=42951) он работает. Вы столкнулись с каким-то устойчивым решением проблемы? – Hitendra