2016-11-07 25 views
5

Я использую Azure Search .Net SDK.Задача была отменена - что это значит?

Я звоню функции (НЕ АСИНХРОННЫЙ), как это синхронное:

var searchResults = searchIndexClient.Documents.Search<T>(searchText, searchParameters); 

Это обычно работает. Я не использую какие-либо функций асинхронных, но как-то ошибка, я только что получил выгляжу как ошибка асинхронной:

System.Threading.Tasks.TaskCanceledException: A task was canceled. 

CancellationToken: IsCanceleationRequested=false 

Task: Id = 556, Status = Canceled, Method = "{null}", Result = "{Not yet computed}" 

StackTrace: 

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable 1.ConfiguredTaskAwaiter.GetResult() at Microsoft.Azure.Search.DocumentsOperations.<DoContinueSearchWithHttpMessagesAsync>d__15 3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable 1.ConfiguredTaskAwaiter.GetResult() at Microsoft.Azure.Search.DocumentsOperationsExtensions.<SearchAsync>d__15 1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter 1.GetResult() at Microsoft.Azure.Search.DocumentsOperationsExtensions.Search[T](IDocumentsOperations operations, String searchText, SearchParameters searchParameters, SearchRequestOptions searchRequestOptions) at MyApp.AzureSearch.AzureSearchService.PerformSearch[T](String searchText, SearchParameters searchParameters) in c:\Projects\MyAppServer\src\MyApp.AzureSearch\AzureSearchService.cs:line 359 at MyApp.AzureSearch.AzureSearchService.Search[T](String searchText, List 1 searchFields, SearchMode searchMode, List 1 select, Nullable 1 skip, Nullable 1 top, String filter, Boolean includeTotalResultCount, List 1 orderBy) in c:\Projects\MyAppServer\src\MyApp.AzureSearch\AzureSearchService.cs:line 262 at MyApp.AzureSearch.AzureSearchService.SearchEmails(Guid userId, String origin, String searchText, Nullable 1 skip, Nullable 1 top, Boolean includeTotalResultCount, Boolean includeHtmlBody, Boolean orderByProcessedAscending, String interactionStatus) in c:\Projects\MyAppServer\src\MyApp.AzureSearch\AzureSearchService.cs:line 167 at MyApp.Domain.MyAppMessages.Command.MyAppMessagesAllNoticedUpdater.Handle(VisitorSession userSession, NoticeAllMyAppMessages processCommand) in c:\Projects\MyAppServer\src\MyApp.Domain\MyAppMessages\Command\MyAppMessagesAllNoticedUpdater.cs:line 30

ответ

3

Скорее всего, тайм-аут клиент истек до завершения поиска. Вы видите эту ошибку, когда отправляете особенно сложный запрос? При необходимости вы можете посмотреть результаты поиска в своей службе, используя search traffic analytics.

Причина, по которой вы видите «асинхронное» исключение, заключается в том, что синхронная версия API является просто оболочкой над асинхронными примитивами.

+0

Спасибо, я подумал, что это просто обертка асинхронной функции. Это был не сложный запрос, а очень мало данных в запросе. Я не ожидал, что SDK .net выдаст ошибку, если в запросе ничего не было неправильно сконфигурировано. Есть ли список всех возможных ошибок, которые может быть вызван .net sdk, с которым я должен работать? – richard

+0

Основными исключениями, которые могут быть выбраны, являются: «CloudException», «IndexBatchException» (только для индексирования), «ValidationException» и, конечно, «OperationCanceledException» (или его подкласс «TaskCanceledException», с которым вы имеете дело). Но поскольку C# не является проверенным языком исключений, вы можете увидеть и другие исключения (например, ArgumentException). –