3

HttpClientを使用して、以下のコードを使用してメッセージをRESTサービスに非同期で記録しようとしています。

public void LogMessage(string operationURI, string message, EventLogEntryType logEntryType)
        {
            using (var client = new HttpClient())
            {
                var cancellationToken = new CancellationToken();
                client.SendAsync(GetRequest(operationURI), cancellationToken).ContinueWith(
                    cw =>
                    {
                        var response = cw.Result; //(I get an error on this line)
                        if (!response.IsSuccessStatusCode)
                        {
                            LogMessageLocal(message, logEntryType);
                        }
                    });
            }
        }

注:GetRequestMessageはHttpRequestMessageを返します。

しかし、「タスクがキャンセルされました」というエラーが表示されます。

何か案は?

4

2 に答える 2

2

これは、タイムアウトを超えたときに発生する可能性があると思います。timeoutを確認し、例外が発生する前に未処理だった時間をログに記録して、超過しているかどうかを確認できます。

于 2012-12-31T15:12:13.120 に答える