HttpWebRequest, ¿problemas conocidos con la cancelación de solicitudes?
-
06-07-2019 - |
Pregunta
¿Hay algún problema conocido con la cancelación de solicitudes HTTP HttpWebRequest? Encontramos que cuando cancelamos 4-5 solicitudes, la siguiente solicitud se cuelga indefinidamente.
Si no hay problemas conocidos con esto, entonces probablemente estoy haciendo algo mal ... ¿dónde hay un buen ejemplo de recursos que muestre cómo funciona esto (una solución completa, no un par de fragmentos de código)?
Si hay problemas conocidos, ¿qué puedo hacer para solucionarlos y cancelar efectivamente todas las solicitudes que necesito?
Solución
Después de cancelar la solicitud, tenga cuidado de cerrar la secuencia de respuesta, de lo contrario tendrá fugas.
Usualmente uso " usando " cuando obtenga la respuesta de la solicitud web para asegurarse de que la respuesta esté cerrada:
WebRequest request = WebRequest.Create("http://google.com");
using (WebResponse response = request.GetResponse())
{
//do my job
}
De esa manera, incluso si cancela la solicitud, o si arroja una excepción durante la lectura de la respuesta, la respuesta y su transmisión se cerrarán.