Задача была отменена - что это значит?
Я использую Azure Search .Net SDK.
Я вызываю синхронную (НЕ ASYNC) функцию следующим образом:
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:
в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Задача) в System.Runtime.CompilerServices.ConfiguredTask
1.ConfiguredTaskAwaiter.GetResult() at Microsoft.Azure.Search.DocumentsOperations.<DoContinueSearchWithHttpMessagesAsync>d__15
3.MoveNext() --- Конец трассировки стека от предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(задача-задача) в системе.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в System.Runtime.CompilerServices.ConfiguredTaskAwaitable1.ConfiguredTaskAwaiter.GetResult() at Microsoft.Azure.Search.DocumentsOperationsExtensions.<SearchAsync>d__15
1.MoveNext () --- Конец трассировки стека от предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(задача-задача) в системе.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в System.Runtime.CompilerServices.TaskAwaiter1.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, Список1 select, Nullable
1 пропуск, Nullable1 top, String filter, Boolean includeTotalResultCount, List
1 orderBy) в c:\Projects\MyAppServer\src\MyApp.AzureSearch\AzureSearchService.cs: строка 262 в MyApp.AzureSearch.AzureSearchService.SearchEmails(Guid userId, источник строки, строка поискаТекст, Nul1 skip, Nullable
1 сверху, Boolean includeTotalResultCount, Boolean includeHtmlBody, Boolean orderByProcessedAscending, String interactionStatus) в C: \ Projects \ MyAppServer \ Src \ MyApp.AzureSearch \ AzureSearchService.cs: строка 167 в MyApp.Domain.MyAppMessages.Command.MyAppMessagesAllNoticedUpdater.Handle(VisitorSession userSession, NoticeAllMyAppMessages processCommand) в c:\Projects\MyAppServer\src\MyApp.Domain\MyAppMessages\Command\MyAppMessagesAllNoticedUpdater.cs: строка 30
1 ответ
Скорее всего, истекло время ожидания клиента до завершения поиска. Вы видите эту ошибку, когда отправляете особенно сложный запрос? При необходимости вы можете посмотреть на эффективность поиска в вашем сервисе, используя аналитику поискового трафика.
Причина, по которой вы видите "асинхронное" исключение, заключается в том, что синхронная версия API является просто оболочкой для асинхронных примитивов.
Передайте CancellationToken=null и сделайте код асинхронными методами.