Soap EWS FindItem CalendarView对MaxEntriesReturned的奇怪处理
这是我的SOAP FindItem调用,用于检索日历项:Soap EWS FindItem CalendarView对MaxEntriesReturned的奇怪处理,soap,exchangewebservices,Soap,Exchangewebservices,这是我的SOAP FindItem调用,用于检索日历项: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages"
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">
<soapenv:Header>
<typ:RequestServerVersion Version="Exchange2007_SP1"/>
<typ:MailboxCulture>en-US</typ:MailboxCulture>
<typ:TimeZoneContext>
<typ:TimeZoneDefinition Id="W. Europe Standard Time"/>
</typ:TimeZoneContext>
</soapenv:Header>
<soapenv:Body>
<mes:FindItem Traversal="Shallow">
<mes:ItemShape>
<typ:BaseShape>AllProperties</typ:BaseShape>
<typ:AdditionalProperties>
<typ:FieldURI FieldURI="item:LastModifiedTime" />
</typ:AdditionalProperties>
</mes:ItemShape>
<mes:CalendarView MaxEntriesReturned="1000" StartDate="2015-02-18T00:00:00Z" EndDate="2015-12-05T23:59:59Z"/>
<mes:ParentFolderIds>
<typ:DistinguishedFolderId Id="calendar">
<typ:Mailbox>
<typ:EmailAddress>sddress@server.nl</typ:EmailAddress>
</typ:Mailbox>
</typ:DistinguishedFolderId>
</mes:ParentFolderIds>
</mes:FindItem>
</soapenv:Body>
</soapenv:Envelope>
我不满足于等待答案,我不断地挖掘,终于找到了答案 这就解释了问题2) 文章说,如果调用的RequestServerVersion早于Exchange2010,您将收到错误代码为ErrorServerBusy的失败响应 这正是我正在做的:
。将其更改为
将返回:
<m:FindItemResponseMessage ResponseClass="Error">
<m:MessageText>You have exceeded the maximum number of objects that can be returned for the find operation. Use paging to reduce the result size and try your request again.</m:MessageText>
<m:ResponseCode>ErrorExceededFindCountLimit</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:MessageXml>
<t:Value Name="PolicyLimit">1000</t:Value>
</m:MessageXml>
</m:FindItemResponseMessage>
您已超过查找操作可返回的最大对象数。使用分页减少结果大小,然后重试请求。
错误超出了indcountlimit
0
1000
。。。很好地告诉我,我打破的上限是1000
这篇文章的结论是:这个故事的寓意是:在调用FindItem或FindFolder时,始终使用分页机制。我不满足于等待答案,而是不断地挖掘和发现 这就解释了问题2) 文章说,如果调用的RequestServerVersion早于Exchange2010,您将收到错误代码为ErrorServerBusy的失败响应 这正是我正在做的:
。将其更改为
将返回:
<m:FindItemResponseMessage ResponseClass="Error">
<m:MessageText>You have exceeded the maximum number of objects that can be returned for the find operation. Use paging to reduce the result size and try your request again.</m:MessageText>
<m:ResponseCode>ErrorExceededFindCountLimit</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:MessageXml>
<t:Value Name="PolicyLimit">1000</t:Value>
</m:MessageXml>
</m:FindItemResponseMessage>
您已超过查找操作可返回的最大对象数。使用分页减少结果大小,然后重试请求。
错误超出了indcountlimit
0
1000
。。。很好地告诉我,我打破的上限是1000
文章的结论是:这个故事的寓意是:在调用FindItem或FindFolder时,始终使用分页机制。CalenderView无法分页。例如,看看,您会发现没有允许您指定偏移量(或索引)值的属性 你需要做的是缩短时间窗口,这样你得到的物品少于1000件。然后自己手动分页时间窗口,以获取所需的完整约会列表 干杯
GlenCalenderView无法翻页,例如,请查看,您将看到没有允许您指定偏移(或索引)值的属性 你需要做的是缩短时间窗口,这样你得到的物品少于1000件。然后自己手动分页时间窗口,以获取所需的完整约会列表 干杯
Glen在
FindItem
响应中的TotalItemsView
属性对应于整个日历视图中的total项目数。如果查看返回的项目的实际数量,则生成的数据集仍将由集合MaxEntriesReturned
绑定
因此,例如,如果我将我知道的日期范围总共有4个事件的
MaxEntriesReturned
设置为1,我将返回:FindItem
响应中的TotalItemsView
属性对应于整个CalendarView中的total项目数。如果查看返回的项目的实际数量,则生成的数据集仍将由集合MaxEntriesReturned
绑定
例如,如果我将我知道的总共有4个事件的日期范围的
MaxEntriesReturned
设置为1,我将返回:对不起,我没有得到这个。它有一个MaxEntriesReturned。我将其与StartDate一起指定(以防止被错误击中)。我得到了不止一个includeLastItemInRange=false的MaxEntriesReturned条目,因此似乎应用了一些限制。我用一个新的StartDate实现我自己的分页机制,只要includeLastItemInRange=false。对不起,我不明白这个。它有一个MaxEntriesReturned。我将其与StartDate一起指定(以防止被错误击中)。我得到了不止一个includeLastItemInRange=false的MaxEntriesReturned条目,因此似乎应用了一些限制。只要includeLastItemInRange=false,我就用新的StartDate实现自己的分页机制,并进行后续调用。
<ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="516" MinorBuildNumber="29" Version="Exchange2013" .../>
<m:FindItemResponseMessage ResponseClass="Error">
<m:MessageText>You have exceeded the maximum number of objects that can be returned for the find operation. Use paging to reduce the result size and try your request again.</m:MessageText>
<m:ResponseCode>ErrorExceededFindCountLimit</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:MessageXml>
<t:Value Name="PolicyLimit">1000</t:Value>
</m:MessageXml>
</m:FindItemResponseMessage>