HttpClient al usar la declaración hace que la tarea se cancele

Creé unFileResult : IHttpActionResult Webapi tipo de retorno para mis llamadas API. FileResult descarga un archivo de otra url y luego devuelve la transmisión al cliente.

Inicialmente mi código tenía unusing declaración como a continuación:

public async Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
    try
    {
        HttpResponseMessage response;
        using (var httpClient = new HttpClient())
        {

            response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new System.Net.Http.StreamContent(
                                    await httpClient.GetStreamAsync(this.filePath))
            };
        }
        return response;
    }
    catch (WebException exception)
    {...}
}

Sin embargo, esto ocasionaría intermitentementeTaskCanceledException. Sé que si el HttpClient se elimina antes de que finalice la llamada astronómica, el estado de la tarea cambiará a cancelado. Sin embargo, ya que uso unesperar&nbsp;en:Content = new System.Net.Http.StreamContent(await httpClient.GetStreamAsync(this.filePath))&nbsp;eso debería evitar que el HttpClient se elimine en la mitad de la finalización de la tarea.

¿Por qué se cancela esa tarea?&nbsp;No se debe a un tiempo de espera ya que esto ha sucedido en las solicitudes más pequeñas y no siempre ocurre en solicitudes grandes.

Cuando quité elusing&nbsp;declaración el código funcionó correctamente:

public async Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
    try
    {
        HttpResponseMessage response;
        var httpClient = new HttpClient();

        response = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new System.Net.Http.StreamContent(
                                await httpClient.GetStreamAsync(this.filePath))
        };
        return response;
    }
    catch (WebException exception)
    {...}
}

¿Alguna idea de por qué el uso causó el problema?