Exchange Web服务列出文件夹的项目

时间:2014-09-10 14:51:24

标签: exchangewebservices

我从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,该操作列出了文件夹层次结构。

如何解决这个问题?

2 个答案:

答案 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