HTMLAgilityPack y tiempos de espera de carga

.net c# html-agility-pack vb.net

Pregunta

Estoy usando HTMLAgilityPack en un analizador que tengo en un servidor, pero tengo problemas con uno de los sitios web que estoy analizando: todos los días, alrededor de las 6 am, tienden a cerrar sus servidores por mantenimiento, lo que arroja el método Load () para HTMLWeb, y hace que mi aplicación se bloquee. ¿Alguno de ustedes tiene una forma más segura de cargar un sitio web en HTMLAgilityPack, o tal vez alguna forma de verificar los errores en C # para evitar que mi aplicación se bloquee? (Mi c # está un poco oxidado). Aquí está mi código en este momento:

HtmlWeb webGet = new HtmlWeb();
HtmlDocument document = webGet.Load(dealsiteLink); //The Load() method here stalls the program because it takes 1 or 2 minutes before it realizes the website is down

¡Gracias!

Respuesta popular

Simplemente rodee la llamada con un try-catch:

HtmlWeb webGet = new HtmlWeb();

HtmlDocument document;
try
{
    document = webGet.Load(dealsiteLink); 
}
catch (WebException ex)
{
    // Logic to retry (maybe in 10 minutes) goes here
}

La lógica exacta de reintento dependerá de cómo esté estructurada su aplicación: probablemente encontrará que el bloque try-catch debe ubicarse más arriba en su aplicación y debe ir mucho más arriba que esto.

Creo que WebException es la excepción que debería atrapar, pero no puedo estar seguro porque no puedo encontrar la documentación. Es posible que también necesite capturar TimeoutException .



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué