none
Que TimeOut predomina en este caso? RRS feed

  • Pregunta

  • Buenas tardes a todos!

    Tengo la siguiente duda : sobre un proyecto ASP.net  realizo una tarea que me lleva bastante tiempo de procesamiento de acuerdo a la cantidad de registros que tenga que procesar, entonces creo una transaccion de esta manera especificandole un timeout

      using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.Required,new System.TimeSpan(0,20,0)))
    
    
    foreach( etc    
    //hago el trabajo 
    savechanges();
    
    etc

    y cuando instancio el contexto le pongo 20 minutos de timeout , como en la transaccion.

    Entonces la pregunta es, es necesario que el contexto tenga el mismo timeout o superior que la transaccion o puede ser menos?

    Desde ya Muchas Gracias!


    Patricio Urbieta

    viernes, 21 de febrero de 2014 15:31

Respuestas

  • pero yo quier saber si los tiempos son independientes, es decir , cuando en entity hago el Savechanges() se abre y se cierra una conexion ? son diferentes trimeout,

    deberian serlo porque se supone que el savechanges toma esa operaciones que realizaste sobre las entidades como una unidad

    si realizas cambios en tu entidad haces savechanges() luego sigues modificando y realizas savechanges() son dos operaciones diferentes

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Amperssan viernes, 21 de febrero de 2014 17:08
    viernes, 21 de febrero de 2014 17:07

Todas las respuestas

  • También deberías especificar el timeout de tu servidor web para que no cierre la conexión en ese tiempo. Para ello en el web.config ...

    <configuration>
      <system.web>
      <httpRuntime 
        executionTimeout="45"
        />
      </system.web>
    </configuration>
    
    revisaesl siguiente link http://msdn.microsoft.com/es-es/library/e1f13641(v=vs.100).aspx

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 21 de febrero de 2014 16:17
  • hola

    pero estas usando entity framework no es asi como se define el timeout

    sino que debes definirlo al command del contexto del EF

    ((IObjectContextAdapter)context).ObjectContext.CommandTimeout = 600; //10 min

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    viernes, 21 de febrero de 2014 16:48
  • Hola , para lo que me dice sergio, si , ya habia configurado el WEb.config cun un valor bastante superior y cuando me surgio el error de timeout, tenia el command de EF seteado en 12 minutos y me seguia dando error luego le cambie el contructor a la transaccion dnadole 20 min y tambien al commend de EF, pero yo quier saber si los tiempos son independientes, es decir , cuando en entity hago el Savechanges() se abre y se cierra una conexion ? son diferentes trimeout, los del command del objectcontext y los de la transaccion ?

    Gracias por la ayuda de antemano!


    Patricio Urbieta

    viernes, 21 de febrero de 2014 17:00
  • pero yo quier saber si los tiempos son independientes, es decir , cuando en entity hago el Savechanges() se abre y se cierra una conexion ? son diferentes trimeout,

    deberian serlo porque se supone que el savechanges toma esa operaciones que realizaste sobre las entidades como una unidad

    si realizas cambios en tu entidad haces savechanges() luego sigues modificando y realizas savechanges() son dos operaciones diferentes

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Amperssan viernes, 21 de febrero de 2014 17:08
    viernes, 21 de febrero de 2014 17:07