Timeout

Cuando intento acceder a una página realizada por terceros desde mi aplicación Web desarrollada en visual estudio net 2003(webform), en algunas oportunidades tarda demasiado tiempo el acceso a esta, la ayuda que necesito urgente de Ud., es como controlar desde mi aplicación Web el tiempo de acceso a la página del tercero, cuando este tarde más tiempo de lo esperado se le muestre al usuario un mensaje donde se explique lo que ocurre, y se cierre la página de mi aplicación, no se si esto se logra con el timeout y si es así no se como hacerlo.
...
...

1 Respuesta

Respuesta
1
El acceso a la página del tercero, ¿se realiza desde su servidor o desde el navegador del cliente?
El acceso a la página del tercero se hace desde mi servidor.
Si estás usando el objeto WebRequest, puedes establecer la propiedad Timeout antes de llamar al método GetResponse.
En VB.NET, por ejemplo, para un timeout de 10 segundos sería:
Dim peticion as WebRequest = WebRequest.Create("url de la página")
peticion.Timeout = 10000
try
Dim resultado as WebResponse = peticion.GetResponse()
catch ex as WebException
if ex.Status = WebExceptionStatus.Timeout then
<código para manejar la excepcion>
else
<código...>
end if
end try
Ten en cuenta que esto es válido para llamadas síncronas. Si llamas de forma asíncrona, tendrás que controlar por ti mismo el timeout mediante un timer, y si se produce, llamar al método Abort del WebRequest para cancelar la petición.
Buenos días experto, agradezco su atención. Hago referencia a una página HTML la cual construyo en el momento que se va a realizar la conexión con la página del tercero, es decir codifico la página(HTML) desde el entorno VB.net(webform), desde allí invoco la página HTML, y desde esa página(HTML) es que invoco la del tercero, el cual le envío algunos valores utilizando el método post, cuando se intenta acceder a la página del tercero es que a veces tarda demasiado tiempo de lo esperado, y es lo que se desea controlar. Ahora bien lo que no estoy claro es si se debe colocar algo en la página HTML(que es la que en realidad invoca a la página del tercero) o simplemente lo hago en el WEBFORM con el código que anexa en la respuesta, esa es la aclaratoria que necesito.
Anexo extractos del código de como construyo el HTML desde el webform y como la invoco para que esta llame a la página del tercero utilizando el response.redirect().
Se construye la página HTML
WITH.....
.
.
.WriteLine("<html>")
.WriteLine("<head>")
.
.
.WriteLine("<form name=""form""method=""post""action=""http//www.pagina/tercero.php"">")
.
.
.
Close()
END WITH
Se llama a la página HTML y desde allí se invoca a la del tercero
Response.Redirect("pagina.html", True)
Si la página del tercero se invoca desde el código HTML que usted ha generado automáticamete, entonces este proceso ocurre en el lado del cliente (navegador).
Supongo que la página del tercero se invoca mediante un botón submit, o mediante java script.
<script type="text/javascript>
document.onload = function {
document.forms[0].submit(); return true;
}
</script>
Claro que de cualquier modo, a partir de este punto, todo ocurre en el navegador del cliente. Enviar un form vía HTML, aún mediante javascript, no permite controlar el timeout, pues realmente estamos transfiriendo el navegador a la página del tercero.
Considere usar el objeto WebRequest en el lado del servidor para hacer el post a la página del tercero. El post ser haría desde su servidor, y puede controlar el timeout. Si no se produce el timeout, puede procesar la respuesta del tercero o entregársela directamente al cliente como HTML, claro que esto puede tener otros efectos no deseados, sobre todo si la página del tercero usa cookies o depende del estado de la sesión para su funcionamiento.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas