odata.track-changes导致错误500“窗口结束时间必须大于开始时间”

时间:2019-08-23 06:50:30

标签: microsoft-graph exchange-server outlook-restapi

我想使用 Outlook REST API 从Exchange Server 2019 CU2中读取日历项目。

但是,一旦我添加了 Prefer: odata.track-changes的HTML标头用于获取deltaToken,服务器会回答:

错误500

{"error":{"code":"ErrorInternalServerError","message":"Window end time must be greater than start time REST APIs for this mailbox are currently in preview. You can find more information about the preview REST APIs at https://dev.outlook.com/."}}

我可以在此交换服务器实例上的任何帐户下,使用此代码段重现错误。

$url = "https://myexchangeserver/api/v2.0/me/calendarview?startDateTime=2004-08-21T22:00:00Z&endDateTime=2034-08-21T21:59:59Z&$expand=singleValueExtendedProperties($filter%3DPropertyId%20eq%20%27Binary%200x0FFF%27)"
$output = "C:\temp\1.json"

$wc = New-Object System.Net.WebClient
$wc.Credentials = new-object System.Net.NetworkCredential("myusername", "mypassword", "mydomain")
$wc.Headers.Clear();
$wc.Headers.Add("Prefer: odata.track-changes")
$wc.DownloadFile($url, $output)

我多次检查startDateTimeendDateTime,但是开始小于结束

我搜索了 Exchange Server日志,并发现了此错误堆栈

DispatchException=System.ArgumentException: Window end time must be greater than start time
bei Microsoft.Exchange.Data.ApplicationLogic.SyncCalendar.SyncCalendar..ctor(CalendarSyncState syncState  IStoreSession session  StoreObjectId folderId  GetPropertiesToFetchDelegate getPropertiesToFetchDelegate  ExDateTime windowStart  ExDateTime windowEnd  Boolean includeAdditionalDataInResponse  Int32 maxChangesReturned  Boolean adjustStartAndEndForAllDayEvents)
bei Microsoft.Exchange.Services.Wcf.SyncCalendar.InternalExecute()
bei Microsoft.Exchange.Services.Wcf.ServiceCommand`1.DetectDuplicatedCallOrExecute()
bei Microsoft.Exchange.Services.Wcf.ServiceCommand`1.Execute()
bei Microsoft.Exchange.Services.ExchangeService.ExchangeServiceBase.<>c__DisplayClass338_0`1.<InvokeOwsServiceCommand>b__0()
bei Microsoft.Exchange.Services.ExchangeService.ExchangeServiceBase.CallWithExceptionHandling(ExecutionOption executionOption  Action action)
bei Microsoft.Exchange.Services.ExchangeService.ExchangeServiceBase.InvokeOwsServiceCommand[TResponse](Func`1 commandCreator  ExecutionOption executionOption  Boolean throwOnNullResponse)
bei Microsoft.Exchange.Diagnostics.RequestDetailsLoggerBase`1.TrackLatency[TResult](Enum latencyMetadata  Func`1 method)
bei Microsoft.Exchange.Services.OData.Model.CalendarViewSyncCommand`1.<>c__DisplayClass5_0.<SyncCalendar>b__1()
bei Microsoft.Exchange.Services.ExchangeService.ExchangeServiceHelper.HandleResponseCode(ResponseCodeType responseCodeType  Action delegateAction  Action`1 handlerAction)
bei Microsoft.Exchange.Services.OData.Model.CalendarViewSyncCommand`1.SyncCalendar(IExchangeService exchangeService  PagingTokenFlags flags  String& skipToken  String& deltaToken)
bei Microsoft.Exchange.Services.OData.Model.CalendarViewTrackChangesCommand.InternalExecute(IExchangeService exchangeService)
bei Microsoft.Exchange.Services.OData.ExchangeServiceCommand`2.InternalExecute()
bei Microsoft.Exchange.Services.OData.ODataCommand`2.<Execute>b__9_0()
bei Microsoft.Exchange.Diagnostics.RequestDetailsLoggerBase`1.TrackLatency[TResult](Enum latencyMetadata  Func`1 method)
bei Microsoft.Exchange.Services.OData.EntityContainersCommand`2.Execute()
bei Microsoft.Exchange.Services.OData.Web.RequestBroker.<>c__DisplayClass2_0.<Execute>b__0()
bei Microsoft.Exchange.Services.Diagnostics.ServicesPerformanceTracker.RunOperationWithTrackingADAndRpcPerformance(Action method  Enum adCount  Enum adLatency  Enum rpcCount  Enum rpcLatency)
bei Microsoft.Exchange.Services.OData.Web.RequestBroker.Execute(ODataRequest request)
bei Microsoft.Exchange.Services.OData.Web.RequestBroker.Dispatch(HttpContextBase httpContext  AsyncCallback asyncCallback  CheckpointTracker checkpointTracker  ServiceModel serviceModel  IComponentConfiguration`1 configuration);ServiceDiagnostics_ReportException=System.ArgumentException: Window end time must be greater than start time
bei Microsoft.Exchange.Data.ApplicationLogic.SyncCalendar.SyncCalendar..ctor(CalendarSyncState syncState  IStoreSession session  StoreObjectId folderId  GetPropertiesToFetchDelegate getPropertiesToFetchDelegate  ExDateTime windowStart  ExDateTime windowEnd  Boolean includeAdditionalDataInResponse  Int32 maxChangesReturned  Boolean adjustStartAndEndForAllDayEvents)
bei Microsoft.Exchange.Services.Wcf.SyncCalendar.InternalExecute()
bei Microsoft.Exchange.Services.Wcf.ServiceCommand`1.DetectDuplicatedCallOrExecute()
bei Microsoft.Exchange.Services.Wcf.ServiceCommand`1.Execute()
bei Microsoft.Exchange.Services.ExchangeService.ExchangeServiceBase.<>c__DisplayClass338_0`1.<InvokeOwsServiceCommand>b__0()
bei Microsoft.Exchange.Services.ExchangeService.ExchangeServiceBase.CallWithExceptionHandling(ExecutionOption executionOption  Action action)
bei Microsoft.Exchange.Services.ExchangeService.ExchangeServiceBase.InvokeOwsServiceCommand[TResponse](Func`1 commandCreator  ExecutionOption executionOption  Boolean throwOnNullResponse)
bei Microsoft.Exchange.Diagnostics.RequestDetailsLoggerBase`1.TrackLatency[TResult](Enum latencyMetadata  Func`1 method)
bei Microsoft.Exchange.Services.OData.Model.CalendarViewSyncCommand`1.<>c__DisplayClass5_0.<SyncCalendar>b__1()
bei Microsoft.Exchange.Services.ExchangeService.ExchangeServiceHelper.HandleResponseCode(ResponseCodeType responseCodeType  Action delegateAction  Action`1 handlerAction)
bei Microsoft.Exchange.Services.OData.Model.CalendarViewSyncCommand`1.SyncCalendar(IExchangeService exchangeService  PagingTokenFlags flags  String& skipToken  String& deltaToken)
bei Microsoft.Exchange.Services.OData.Model.CalendarViewTrackChangesCommand.InternalExecute(IExchangeService exchangeService)
bei Microsoft.Exchange.Services.OData.ExchangeServiceCommand`2.InternalExecute()
bei Microsoft.Exchange.Services.OData.ODataCommand`2.<Execute>b__9_0()
bei Microsoft.Exchange.Diagnostics.RequestDetailsLoggerBase`1.TrackLatency[TResult](Enum latencyMetadata  Func`1 method)
bei Microsoft.Exchange.Services.OData.EntityContainersCommand`2.Execute()
bei Microsoft.Exchange.Services.OData.Web.RequestBroker.<>c__DisplayClass2_0.<Execute>b__0()
bei Microsoft.Exchange.Services.Diagnostics.ServicesPerformanceTracker.RunOperationWithTrackingADAndRpcPerformance(Action method  Enum adCount  Enum adLatency  Enum rpcCount  Enum rpcLatency)
bei Microsoft.Exchange.Services.OData.Web.RequestBroker.Execute(ODataRequest request)
bei Microsoft.Exchange.Services.OData.Web.RequestBroker.Dispatch(HttpContextBase httpContext  AsyncCallback asyncCallback  CheckpointTracker checkpointTracker  ServiceModel serviceModel  IComponentConfiguration`1 configuration);

如何摆脱此错误500?

0 个答案:

没有答案