次のコードがあります。応答を受け取る前に、投稿先のハンドラーがタイムアウトすることがあります (デフォルトのタイムアウト値を延長したくない)。これが発生すると、1 つの InnerExceptions がある場所で AggregateException がスローされます。
[0] {"タスクがキャンセルされました。"} System.Exception {System.Threading.Tasks.TaskCanceledException}
var _httpClient = new HttpClient();
var _content = new StringContent("thecontent");
var responseMessagePost = _httpClient2.PostAsync("http://localhost:50643/handler1.ashx", _content).Result;
これは正しい動作ですか?
変数 responseMessagePost が RequestTimeout = 408 のステータス コードを持つことを期待していました。たとえば、次のようにすると、例外はスローされず、NotFound = 404 のステータス コードが返されます。動作が異なるのはなぜですか?
var httpClient = new HttpClient();
var _content = new StringContent("thecontent");
var _responseMessagePost = httpClient.PostAsync("http://localhost:50643/handlerdoesnotexist.ashx", _content).Result;