我从MS Exchange收到此错误消息:
EWS Id采用EwsLegacyId格式,您的请求指定的Exchange版本不支持该格式。请使用ConvertId方法将Id从EwsId转换为EwsLegacyId格式。
响应以下肥皂请求:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
</soap:Header>
<soap:Body>
<m:FindItem Traversal="Shallow">
<m:ItemShape>
<t:BaseShape>Default</t:BaseShape>
<!--
<t:AdditionalProperties>
<t:FieldURI FieldURI="item:TextBody" />
<t:FieldURI FieldURI="item:Body" />
</t:AdditionalProperties>
-->
</m:ItemShape>
<m:IndexedPageItemView MaxEntriesReturned="100" Offset="0" BasePoint="Beginning" />
<m:ParentFolderIds>
<t:FolderId Id="AQMkAGEzZTIzOWNmLWFiMGUtNDg5NC05NzNlLTUxN2FmNGQ3ZjIxMQAALgAAA95uXloT2IJPlNaCGuwj8ycBAObfRJ+1FF9PkWpl8+aNmhoAAAIBDAAAAA==" ChangeKey="AQAAABYAAADm30SftRRfT5FqZfPmjZoaAAAPjzNZ" />
</m:ParentFolderIds>
</m:FindItem>
</soap:Body>
我从之前的FindFolder操作中获取了文件夹ID,该操作列出了文件夹层次结构。
如何解决这个问题?
答案 0 :(得分:4)
我也有同样的问题。
在标头中添加了RequestServerVersion。这解决了这个问题。
' <soap:Header>' +
' <RequestServerVersion Version="Exchange2013" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" soap:mustUnderstand="0" />' +
' </soap:Header>' +
答案 1 :(得分:0)
您需要添加
<t:RequestServerVersion Version="Exchange2007_SP1" />
标签之间的。版本可以是此处定义的任何版本:EWS schema versions in Exchange。
然而,一旦你得到那个错误,你会得到另一个试图请求该项:TextBody和item:Body。要获取消息的正文,您需要发送一个GetItem操作,该操作包含要绑定到的项的ItemId(即get)。
有关详细信息,请参阅此页面:How to: Work with Exchange mailbox items by using EWS。