Estamos usando WebClient, .NET 3.5sp1 en una aplicación de winforms. Para algunos usuarios esto se traduce en una excepción con el mensaje:Reproducir "El servidor cerró una conexión que se esperaba que se mantuviera activa".
"la conexión subyacente se cerró: Una conexión que se espera que sea mantenido con vida fue cerrada por el servidor."
Buscando un poco alrededor de la web sugiere una "solución" a simplemente desactivar HTTP keepalive, que no estamos realmente interesados en hacer, algo sugiere que podría ser un error en las bibliotecas .NET, etc.
El mensaje de error sugiere que se trata de una conexión http controlada que de alguna manera se cerró por el servidor (o un proxy) sin que los subyacentes de WebClient lo detecten correctamente.
Estamos pensando en captar este caso específico, y simplemente intentemos con la solicitud nuevamente. Sin embargo, no podemos reproducir esta excepción. Asi que.
¿Cómo podemos capturar adecuadamente la caja que produce el mensaje de error anterior?
captura (WebException ex) { si (== ex.Message "la conexión subyacente se cerró: Una conexión que se espera que sea mantenido con vida fue cerrada por el servidor") {...}
huele mal.
¿Algún consejo sobre cómo podemos reproducir la excepción anterior?
'' de los usuarios Para algunos sugiere que no todo el mundo. ¿Están esos usuarios detrás de un proxy (explícitamente establecido o un proxy transparente)? Los servidores proxy ocupados en entornos corporativos pueden soltar conexiones inesperadamente, de ahí la excepción. De cualquier manera, es un problema de red (cliente, host o bits intermedios) de algún tipo, no es un error en .NET Framework. –
Probablemente tengas razón de que es un problema de red. Por lo tanto, queremos intentar simplemente volver a intentar la solicitud si esto es particular, aunque todo lo que sabemos es que este texto se originó a partir de una WebException, entonces ¿hay alguna manera confiable de detectar esta excepción específica, algún código de error específico o no? Y queremos reproducirlo, por lo que podemos probar que reintentar la solicitud no causa otra anomalía cuando "se cerró la conexión" – Habalusa
Recibo el mismo error cuando intento enviar datos de gran tamaño desde la capa de servicio. ¿Alguna pista de por qué esto podría estar pasando? –