EWS托管API:更新邮件时出现异常 [英] EWS Managed API: Exception when updating message

查看:97
本文介绍了EWS托管API:更新邮件时出现异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我想使用以下代码将某些电子邮件的messageClass从IPM.Note更改为IPM.Note.MyForm:

EmailMessage message = EmailMessage.Bind(service,item.Id);
message.ItemClass =" IPM.Note.MyForm" ;;
message.Update(ConflictResolutionMode.AlwaysOverwrite);

当执行此代码我得到了解雇:

Microsoft.Exchange.WebServices.Data.ServiceXmlDeserializationException:预期的XML节点类型是Element,但实际类型是EndElement。在Microsoft。 Exchange.WebServices.Data.EwsXmlReader.Read(XmlNodeType nodeType)
在Microsoft.Exchange.WebServices.Data.EwsXmlReader.InternalReadElement(XmlNa
mespace xmlNamespace,String localName,XmlNodeType nodeType)
在Microsoft .Exchange.WebServices.Data.UpdateItemResponse.ReadElementsFromXml
(EwsServiceXmlReader reader)
在Microsoft.Exchange.WebServices.Data.ServiceResponse.LoadFromXml(EwsService
XmlReader re ader,String xmlElementName)
在Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.ParseRes
ponse(EwsServiceXmlReader reader)
在Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadResponse(EwsSer)
viceXmlReader ewsXmlReader)
在Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadResponse(HttpWe
bResponse response)
在Microsoft.Exchange.WebServices.Data.ServiceRequestBase.InternalExecute()
在Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
在Microsoft.Exchange.WebServices.Data.ExchangeService.InternalUpdateItems(IE
可数项`1项,FolderId savedItemsDestinationFolderId, ConflictResolutionMode conflictResolution,
Nullable`1 messageDisposition,Nullable`1 sendInvitationsOrCancellationsMode,ServiceErrorHandling errorHandling)
在Microsoft.Exchange.WebServices.Data.ExchangeService.UpdateItem(Item item,
FolderId savedItemsDestinati onFolderId,ConflictResolutionMode conflictResolutio
n,Nullable`1 messageDisposition,Nullable`1 sendInvitationsOrCancellationsMode)

在Microsoft.Exchange.WebServices.Data.Item.InternalUpdate(FolderId parentFol
derId,ConflictResolutionMode conflictResolutionMode,Nullable`1 messageDisposit
ion,Nullable`1 sendInvitationsOrCancellationsMode)
在Microsoft.Exchange.WebServices.Data.Item.Update(ConflictResolutionMode con_flictResolutionMode)
在ExAccess.Access .run()在E:\ project] \\ O2007 \ExAccess\ExAccess\src \ Access.cs中:第109行

但是,更改完成:我检查了消息的itemClass,我看到了新的消息。


有任何想法吗?

星期六·Mike·

Hi,

I want to change the messageClass of certain e-mails from IPM.Note to IPM.Note.MyForm with the following code:

EmailMessage message = EmailMessage.Bind(service, item.Id);
message.ItemClass = "IPM.Note.MyForm";
message.Update(ConflictResolutionMode.AlwaysOverwrite);

When executing this code I get the excpetion:

Microsoft.Exchange.WebServices.Data.ServiceXmlDeserializationException: Expected
 XML node type was Element, but actual type is EndElement.
   at Microsoft.Exchange.WebServices.Data.EwsXmlReader.Read(XmlNodeType nodeType)
   at Microsoft.Exchange.WebServices.Data.EwsXmlReader.InternalReadElement(XmlNa
mespace xmlNamespace, String localName, XmlNodeType nodeType)
   at Microsoft.Exchange.WebServices.Data.UpdateItemResponse.ReadElementsFromXml
(EwsServiceXmlReader reader)
   at Microsoft.Exchange.WebServices.Data.ServiceResponse.LoadFromXml(EwsService
XmlReader reader, String xmlElementName)
   at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.ParseRes
ponse(EwsServiceXmlReader reader)
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadResponse(EwsSer
viceXmlReader ewsXmlReader)
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadResponse(HttpWe
bResponse response)
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.InternalExecute()
   at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
   at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalUpdateItems(IE
numerable`1 items, FolderId savedItemsDestinationFolderId, ConflictResolutionMode conflictResolution,
Nullable`1 messageDisposition, Nullable`1 sendInvitationsOrCancellationsMode, ServiceErrorHandling errorHandling)
   at Microsoft.Exchange.WebServices.Data.ExchangeService.UpdateItem(Item item,
FolderId savedItemsDestinationFolderId, ConflictResolutionMode conflictResolutio
n, Nullable`1 messageDisposition, Nullable`1 sendInvitationsOrCancellationsMode)

   at Microsoft.Exchange.WebServices.Data.Item.InternalUpdate(FolderId parentFol
derId, ConflictResolutionMode conflictResolutionMode, Nullable`1 messageDisposit
ion, Nullable`1 sendInvitationsOrCancellationsMode)
   at Microsoft.Exchange.WebServices.Data.Item.Update(ConflictResolutionMode con
flictResolutionMode)
   at ExAccess.Access.run() in E:\projects\O2007\ExAccess\ExAccess\src\Access.cs
:line 109

Nevertheless, the change is done: When I check the itemClass of the message, I see the new one.


Any ideas ?

Thx
Mike

推荐答案

您是否可以在ExchangeService实例上启用EwsResponses跟踪并发布从Update调用返回的内容?我不相信你做错了什么 - 只是试图确定客户端API在阅读响应时遇到问题的原因。你需要做的就是添加以下几行...
Could you enable tracing for EwsResponses on the ExchangeService instance and post what is coming back from the Update call?  I don't believe you are doing anything wrong - just trying to determine why the client API is having trouble reading the response.

All you need to do to enable tracing is add the following lines...
service.TraceEnabled = true;
service.TraceFlags = EWS.TraceFlags.EwsResponse;



然后,响应将被追踪到控制台。

Then the response will be traced to the console.


这篇关于EWS托管API:更新邮件时出现异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆