Envié 2 o más solicitudes juntas para el servicio de descanso y después de la segunda respuesta, aparece un error. También localmente todo funciona muy bien, pero en el env atrapo una excepción.
La operación fue cancelada.
El error adquirido: System.ObjectDisposedException: CancellationTokenSource se ha eliminado.
en System.Threading.CancellationTokenSource.ThrowObjectDisposedException()
¿Alguien puede sugerir algo?
[NotNull] [ItemNotNull] private async Task<TResponse> PostAsync<TRequest, TResponse>([NotNull] string path, [NotNull] TRequest request, CancellationToken cancellationToken) where TRequest : class where TResponse : class { var logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.Console() .CreateLogger(); Console.WriteLine("client"); var client = this.GetHttpClient(); Console.WriteLine("content"); using var content = this.CreateHttpContent(request); Console.WriteLine("response"); try { using var response = await client.PostAsync(path, content, cancellationToken).ConfigureAwait(false); return await this.ParseResponseAsync<TResponse>(response, cancellationToken).ConfigureAwait(false); } catch (OperationCanceledException exception) { logger.Verbose(exception.Message); throw; } catch (Exception exception) { Console.WriteLine(exception); logger.Verbose(exception.Message); logger.Error(exception.StackTrace); logger.Fatal(exception.InnerException?.Message); throw; } } [NotNull] private HttpClient GetHttpClient() { var client = new HttpClient { BaseAddress = this.m_baseAddress }; var headers = client.DefaultRequestHeaders; headers.Accept.Clear(); headers.Accept.Add(new MediaTypeWithQualityHeaderValue(MEDIA_TYPE_JSON)); headers.ConnectionClose = true; return client; } [NotNull] private HttpContent CreateHttpContent<TRequest>([NotNull] TRequest request) where TRequest : class { if(request == null) throw new ArgumentNullException(nameof(request)); var content = JsonSerializer.Serialize(request, s_serializerOptions); return new StringContent(content, Encoding.UTF8, MEDIA_TYPE_JSON); } public async Task<long> CreateEmployeeRequestAsync(EmployeeRequestCreateRequest request, CancellationToken cancellationToken = default) { if(request == null) throw new ArgumentNullException(nameof(request)); const string path = "employeerequest"; return (await this.PostAsync<EmployeeRequestCreateRequest, EmployeeRequestCreateResponse>(path, request, cancellationToken).ConfigureAwait(false)).RequestID; }