2016-11-07 33 views
5

私はAzure Search .Net SDKを使用しています。タスクがキャンセルされました - これはどういう意味ですか?

私はこのような(NOT 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: 

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

ありがとう、私はそれがただ非同期関数をラッピングしていると考えました。それはまったく複雑なクエリではなく、クエリ内のデータもほとんどありませんでした。クエリで何かが誤って構成されていない限り、.NET SDKがエラーをスローするとは思わなかった。私が処理すべき.net sdkによってスローされる可能性のあるすべてのエラーのリストがありますか? – richard

+0

スローできる主な例外は、CloudException、IndexBatchException(インデックスのみ)、ValidationExceptionおよびもちろんOperationCanceledException(またはここで扱っているサブクラスの 'TaskCanceledException')です。しかし、C#はチェックされた例外言語ではないので、他の例外(ArgumentExceptionなど)も表示されることがあります。 –

関連する問題