Где добавить httpRuntime в app.config, чтобы увеличить время ожидания запроса HttpClient для консольного приложения? - PullRequest
0 голосов
/ 16 мая 2019

Я потребляю разные web api из консольного приложения через HttpClient.Работает нормально, если обработка завершена и ответ возвращается с web api в течение 1 минуты.Но если он выполняется больше этого, он выбрасывает ниже исключения:

исключение: произошла одна или несколько ошибок."System.AggregateException: произошла одна или несколько ошибок. ---> System.Threading.Tasks.TaskCanceledException: задача была отменена.
--- Конец трассировки стека внутренних исключений --- в System.Threading.Tasks.Task.ThrowIfExceptional (Boolean includeTaskCanceledExceptions) в System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task 1.get_Result ()

Я устанавливаю тайм-аут через код, устанавливая Timeout свойство HttpClient, тогда это работаетхорошо. Но проблема в том, что мне нужно делать это в каждом месте, где я использовал вызов * 1014. * Я не хочу обновлять это изменение везде, мне нужна глобальная конфигурация, чтобы подать заявку на все запросы.

Ниже приведен код, который я использую для вызова web api и ожидаю ответа:

bool result = false;

System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
//client.Timeout = TimeSpan.FromMinutes(10); 
System.Net.Http.HttpResponseMessage httpResponse = client.PostAsync("http://localhost:63303/api/DayRollOver/RunTasks", null).Result;
if (httpResponse.StatusCode == System.Net.HttpStatusCode.OK)
{
    Console.WriteLine("Processed Successfully");
    result = true;
}
else
{
    Console.WriteLine($"failed. StatusCode: { ((System.Net.HttpStatusCode)httpResponse.StatusCode).ToString() }");
}

Console.WriteLine($"Result: { result }");

Я пытаюсь добавить <httpRuntime executionTimeout="300" /> в app.config, но это не решает проблему

...