none
TimeOut postback RRS feed

  • Pregunta

  • Buenas tardes, tengo una aplicación en .net 2012 asp c#, en la cual hago una operación a la BD que tarda unos 3 o 4 minutos, el problema esta en que me manda el siguiente error : "Se excedió el tiempo de espera de la operación", este error no me lo manda la BD, por que si termina la operación,

    ¿Hay algun TimeOut para el postback?

    Gracias por la ayuda.


    Hugo Gil

    miércoles, 9 de septiembre de 2015 18:14

Respuestas


  • Hola Hugo,

    el tiempo máximo para el procesamiento de una solicitud viene especificado por la propiedad HttpRuntimeSection.ExecutionTimeout que por defecto está definido en 110 segundos.

    Puedes cambiar este valor en el Web.config dentro de la sección system.web:

      <system.web>
        <httpRuntime targetFramework="4.5" maxRequestLength="2048" executionTimeout="360" />
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    jueves, 10 de septiembre de 2015 8:54

Todas las respuestas

  • >>hago una operación a la BD que tarda unos 3 o 4 minutos

    pero es el timeout de la pagina el que falla o el del command que ejecuta la query ?

    cual es el exception que recibes ?

    quizas debas ampliar el ComandTimeout

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 9 de septiembre de 2015 18:20
  • Si es el de la pagina por que tengo algo asi:

    try
    {
      Resultado = dao.GeneraInfo();
    }
    catch(Excepcion ex)
    {
      lblError.Text = ex.Message;
    }
    
    public void GeneraInfo()
    {
        try
       {
         object escalar =  cmd.ExecuteScalar();
       }
       catch(Excepcion ex)
       {
         lblError.Text = ex.Message;
       }
    }

    el efecto que hace es medio raro, por que debugeo y me manda al catch del metodo principal,  me dice que se excedio el tiempo, pero el el metodo ExecuteScalar() si pasa bien y no manda ningun error.



    Hugo Gil

    miércoles, 9 de septiembre de 2015 18:26
  • >>me manda al catch del metodo principal,  me dice que se excedio el tiempo

    claro pero entonces es el error de command de ado.net

    que pasa si defines

    public void GeneraInfo() { try { object escalar = cmd.ExecuteScalar(); }

    catch(SqlException ex){

    lblError.Text = ex.Message;

    } catch(Excepcion ex) { lblError.Text = ex.Message; } }

    por cual catch ingresa?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 9 de septiembre de 2015 18:53
  • Gracias leandro, entra al
       catch(Excepcion ex)
       {
         lblError.Text = ex.Message;
       }


    Cabe mencionar, que si termina la operación de la BD, solo es el postback que se termina.

    Hugo Gil


    • Editado Hugo Gil miércoles, 9 de septiembre de 2015 19:32 Complemento
    miércoles, 9 de septiembre de 2015 19:31

  • Hola Hugo,

    el tiempo máximo para el procesamiento de una solicitud viene especificado por la propiedad HttpRuntimeSection.ExecutionTimeout que por defecto está definido en 110 segundos.

    Puedes cambiar este valor en el Web.config dentro de la sección system.web:

      <system.web>
        <httpRuntime targetFramework="4.5" maxRequestLength="2048" executionTimeout="360" />
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    jueves, 10 de septiembre de 2015 8:54
  • Que tal Asier, gracias por la respuesta,

    actualmente el web.config esta 

    <httpRuntime executionTimeout="360000"/>

    con esta linea basta, o tengo que agregar:

    maxRequestLength="2048" 

    Gracias.


    Hugo Gil

    jueves, 10 de septiembre de 2015 15:10
  • No, no es necesario añadirlo. Es simplemente que he copiado la línea de un sitio web de prueba.

    maxRequestLength no tiene nada que ver con el tiempo de ejecución. Especifica el tamaño máximo (en Kb) que puede tener la solicitud.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    jueves, 10 de septiembre de 2015 15:13
  • en la misma solución hay dos proyectos uno que es el que tiene los webforms y el otro es de servicios (asmx), tambien tendroa que agregar executionTimeout en el web.config del proyecto de servicios?

    Hugo Gil

    jueves, 10 de septiembre de 2015 15:31
  • Depende. Como te comentaba el valor por defecto es de 110 segundos.

    Si no hay ningún servicio que vaya a exceder en condiciones normales de este tiempo no necesitarías modificarlo.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...


    jueves, 10 de septiembre de 2015 15:36