ASP.NET - Error de Tiempo de espera

 
Vista:

Error de Tiempo de espera

Publicado por Romi (20 intervenciones) el 07/07/2008 18:43:06
Amigos, me pueden ayudar o aconsejar con esto.

ya antes habia escrito sobre este tema y segui los consejos de ese entonces, pero aun asi sigo con el problema
el asunto es el siguiente, tengo una aplicacion asp.net en 2005 esta hace una serie de consultas a un servidor
SQL server 2005, el problema es que por ejeplo al consultar entre un rango de fechas una serie de datos
si el rango de fecha esta muy separado me manda error en tiempo de espera, dicha consulta debe devolver una cantidad
considerabe de datos y es por ello que tarda la ejecucion, pero le he tomdado el tiempo que se lleva desde
que le doy un click al boton para que inicie el proceso hasta que sale em msg y son aproximadamente 30 segundos,
es decir si ya se dilita mas de 30 segundo me manda el msg de error, si la misma consulta la llevo al
sql server y ahi la ejecuto manualmente ahi se me tarda casi 50 segundo pero al final me devuelve los datos
pero por supuesto como se dilato 50 a 55 segundo eso es mas que los 30 segundo que parece tiene permitido
la aplicacion en asp.net.

Public Function DameDataTable(ByVal strSQL As String, ByVal strCon As String) As DataTable
Dim dtt As New DataTable
Dim dt As New SqlDataAdapter
Dim cmd As New SqlCommand
cmd.CommandText = strSQL
cmd.CommandTimeout = 120
dt = New SqlDataAdapter(cmd.CommandText, strCon)
dt.Fill(dtt)
Return dtt
End Function

ahi les pado la funcion que utilizo para recuperar los datos, si se fijan al command le estoy diciendo que
el tiempo de espera sea de 120 segundo pero aun asi no hace caso.

alguien tiene alguna idea de por que pasa esto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Error de Tiempo de espera

Publicado por @vm (196 intervenciones) el 07/07/2008 20:02:23
Bien, tu asignas bien el tiempo de espera a tu Command, pero no estas ejecutando la consulta con él. La estas ejecutando con el SqlDataAdapter, en esta línea
dt = New SqlDataAdapter(cmd.CommandText, strCon)
estas haciendo la instancia de un SqlDataAdapter y le das como parámetros al constructor, el texto de consulta asignado al command y la cadena de conexión. Bien el que le pases el texto de consulta no significa que le estas dando tiempo de espera al SqlDataAdapter. Bueno ya mucho choro, solo dale tiempo de espera al SqlDataAdapter antes de ejecutarlo.

dt.SelectCommand.CommandTimeout=120
dt.Fill(dtt)

Inténtalo y me dices.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por Romi (20 intervenciones) el 07/07/2008 20:48:04
Amigo @vm tenias razon, ya hice el cambio que me has sugerido y ahora si me funciona, la consulta pasa de mas de 30 segundos y aun asi no me manda tiempo de respuesta agotado, ahora si me muestra los datos.

Muchas gracias por tu ayuda...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por x (445 intervenciones) el 07/07/2008 23:15:19
Aun asi, deberias de buscar la manera de mejorar ese tiempo de espera modificando tu consulta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por Romi (20 intervenciones) el 07/07/2008 23:19:41
Es que lo que ocurre que la cantidad de registro a devolver es enorme, imanate que la consulta va para todos los registros que ahntenido insidencia en lo que va del año ademas dentro de la consulta llamo a unas funciones para obtner otro dato y mostrar todo en el grid, es por eso que tarda hasta 55 seundos mas o menos, pero vere que puedo hacer para mejorar esos tiempos, gracias de todas maneras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por x (445 intervenciones) el 08/07/2008 21:42:32
Pues a menos que tengas que mostrar TODO en pantalla, deberias de paginar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por Romi (20 intervenciones) el 08/07/2008 21:46:46
mmmm haber como me podria ayudar eso, les cuento que yo hago uso de la paginacion en mi pagina, en esta consulta en particular, yo cargo todos los datos en un grid que esta paginado, es deir muestro los primeros 10 registrso y tu sabes en el pie del grid muestro las cantidades de paginas que este puede tener segun la cantidad de datos y al dar un click en la siguiente pagina muestro los proximos 10 registros pero para ello ya los cargue todos en el grid.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por Romi (20 intervenciones) el 08/07/2008 21:56:26
Amigos tengo de nuevo el problema, pero ahora esta algo raro, haber siguiendo los consejos que me dieron, hice las modificaciones al codigo y ahora ya no me da error de tiempo de espera pero en mi maquina, es decir en donde estoy desarrollando, antes aca mismo me daba el tiempo de espera, ahora ya no, ok pensando que ya estaba superado el problema es que pase el fuente al servidor en donde esta alojada la aplicacion, y ahora el error de tiempo de espera me da en el servidor cuendo cargo la palicacion desde donde sea, cuando me encontre con esto lo primeroq ue pense fue en la configuracion del servidor web, ya revise las propiedades de iis del servidor web y las deje igual a las que tengo en mi maquina donde desarrollo pero aun asi me da error tiempo de respuesta, aunq ue ahora dice algo como esto

Sys.WebForms.PageRequestManagerServerErrorExection : An unknown error ocurrerd while processing the request on the server. The statud code return from the server was : 500

la consulta esta bien por que si mando a seleccionar menos cantidad de datos estos son mostrados, un select pequeño no tarda ni 5 segundos y por eso me los muestra pero si ya se pasa la consulta de 30 segundos ahora me manda el error que les minciono.

que creen que pueda ser....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por x (445 intervenciones) el 09/07/2008 16:19:50
mmm podrias agregar a tu base un procedimiento en el que te mande una "pagina", eso es mas rapido que el paginado que te proporciona el GridView.

Aparte, el que funcione no quiere decir que la consulta ya este del todo bien, me ha pasado (al menos a mi) que en ocasiones por las prisas creo unas vistas y funcionan, algo lentas pero funcionan, despues, ya con algo de tiempo, las reviso y corrijo, y he reducido el tiempo de espera de ~20 a ~4 segundos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por Romi (20 intervenciones) el 09/07/2008 16:30:35
Si de eso estoy claro, a mi tambien me a ocurrido lo mismo, luego de revisar con cuidado me he dado cuenta de que se pueden mejorar las consultas, pero ahora lo que me preocupa es el otro problem de tiempo de espera nada mas que ahora en el servidor, la misma consulta en mi maquina se ejecuta bien, tarda pero aun asi termina mostrando los datos, pero ahora cuando la ejecuta desde la pagina que esta alojada en el servidor web desde ahi no se ejecuta, me da error en tiempo de espera....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Error de Tiempo de espera

Publicado por @vm (196 intervenciones) el 09/07/2008 16:42:20
Mandame el error q te marca, para poder ayudarte, tengo duda que sea lo del tiempo de espera. Tu ya le especificaste el tiempo de espera. Quizás este tomando más tiempo del que se creía. intenta aumentarlo a unos 2 minutos, nada más para que evalues si ese es de verdad el problema. Aún así manda el error que te marca para revisarlo.

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por Romi (20 intervenciones) el 09/07/2008 17:06:48
El mensaje de error que me sale es el este, en la aplicacion estoy utilizando controles AJAX te digo esto porq ue no se si
esto tenga algo que ver, lo que me estraña es que en mi equipo en donde estoy desarrollando la consulta
se ejecuta sin problemas, es decir si tarda un poco entre 50 y 55 segundo pero al final muestra los datos en el grid, el problema
inicial era que dicha consulta se cortaba, me mandaba error en tiempo de espera pero al aumentarle el tiempo de respuesta a
los datadapter esto se soluciono, en mi equipo ya sale, ahora que paso el pagina al servidor web en donde esta alojada la
pagina al levnatar la pagina y ejecutar la consulta ahora me da este error..

Sys.WebForms.PageRequestManagerServerErrorExection : An unknown error ocurrerd while processing
the request on the server.
The statud code return from the server was : 500

al inicio crei que era algo de configuracion en el servidor web, de tal modo que trate de dejar la configuracion del IIS del servidor igual
al que tengo en mi equipo y aun asi nada me sigue dando el error...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Error de Tiempo de espera

Publicado por @vm (196 intervenciones) el 09/07/2008 17:35:33
Bueno ese error no me parece de tiempo de espera vencido, revisa tus controles AJAX, alguno que estés usando por ahí no esta bien configurado, o al intentar asignarlo algún valor esta generando error. Si es posible quita los que estés usando en ese aspx, para que evalúes el comportamiento de la misma. Primero has prueba sin tus controles AJAX. Por ahí debe estar la falla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por Romi (20 intervenciones) el 09/07/2008 17:40:44
ok intentare algo como eso, quitare los AJAX para ver si por ahi ando el problema, leyendo un poco en internet me encontre otros foros en donde otra gente a tenido problemas similares al mio y en muchos de ello lo comun es que usamos controles AJAX, si me funciona ahi te y les aviso para todo el que lea esto.

Slds y gracias a todso por la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por Romi (20 intervenciones) el 09/07/2008 18:24:45
Amigos, quite los controles AJAX de la pagina y aun me da el error, nada mas que ahora dice estos.... pero siempre me lo da a los 30 segundos de estar en ejecucion la consulta.


Server Error in '/Utilidades' Application.
--------------------------------------------------------------------------------

Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".

<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>


Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.

<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por x (445 intervenciones) el 09/07/2008 18:44:28
Haz el cambio en el web.config para que muestre los detalles.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por Romi (20 intervenciones) el 09/07/2008 18:47:38
Ok perdona la falta de... jajaja pero yo venfo de progrmar en escritoria y no en web, pero ok por lo que entiendo de esto debo agregar esas lineas al web.congig y lo pongo en true para que como dices tu muestre los detalles... es asi ......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por Romi (20 intervenciones) el 09/07/2008 19:53:12
Amigos, aca el resultado del ultimo cambio.

al agregarle la clausuala de <customErrors mode ="On"> </customErrors> pues ahora me mostro el detalle del error y este es el siguiente....

Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.

Source Error:

Line 188:
Line 189: Catch ex As Exception
Line 190: MsgBox("Ocurrio un error..." & ex.Message)
Line 191: End Try
Line 192: End Sub

como notaran el probelama esta en los msgbox, estos no los puede mostrar, ok pase a poner en comentarios este msgbox y logicamente ahora ya no me presenta el error pero aun asi tanpoco me muestra los datos, regrese los controles AJAX que anteiormente habia quitado ya que estos no son los del problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de Tiempo de espera

Publicado por x (445 intervenciones) el 09/07/2008 23:55:11
1. Quita el Try Catch de ahi (o al menos comentalo).
2. Necesitas mostrar un alert con javascript, pero no es recomendable, lo mejor seria mostrar un mensaje de retroalimentacion en la parte superior, de preferencia con colores que indiquen el tipo de mensaje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Error de Tiempo de espera

Publicado por @vm (196 intervenciones) el 10/07/2008 00:37:17
Dale seguimiento a la Exception para que averigues que error adicional esta ocurriendo, los MSGBOX no son válidos en aplicaciones WEB. Si no trae los datos o la consulta no devuelve nada o se esta presentando un error, averigualo con tu catch.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar