Foros del Web » Programando para Internet » ASPX (.net) »

Error al conectar varios usuarios en aplicación asp.net

Estas en el tema de Error al conectar varios usuarios en aplicación asp.net en el foro de ASPX (.net) en Foros del Web. Hola, estoy haciendo una intranet en asp.net, y parece que funciona. Lo que me está sucediendo es que al probarla, si conecto mas de un ...
  #1 (permalink)  
Antiguo 22/08/2005, 04:40
 
Fecha de Ingreso: mayo-2005
Mensajes: 68
Antigüedad: 19 años
Puntos: 0
Pregunta Error al conectar varios usuarios en aplicación asp.net

Hola, estoy haciendo una intranet en asp.net, y parece que funciona. Lo que me está sucediendo es que al probarla, si conecto mas de un usuario desde el mismo ordenador, a los 3 minutos aproximadamente se produce un error:

Detalles de la excepción: System.Data.SqlClient.SqlException: Valor de tiempo de espera caducado. El período de tiempo de espera caducó antes de completar la operación o el servidor no responde.

Sin embargo, si conecto varios usuarios desde ordenadores diferentes no falla. ¿Saben a que puede deberse? Gracias.
  #2 (permalink)  
Antiguo 22/08/2005, 08:58
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Jorge05, recuerda darte primero una vuelta aqui.

http://www.forosdelweb.com/f29/lee-antes-preguntar-acerca-subforos-326777/

En cuanto a tu duda, que tipo de procesos estás haciendo..?? y estás cerrandos tus conexiones??? también sería bueno que manejes poolings..

Te paso de una vez al subforo de web app
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 23/08/2005, 10:16
 
Fecha de Ingreso: mayo-2005
Mensajes: 68
Antigüedad: 19 años
Puntos: 0
Error al conectar varios usuarios en aplicación asp.net

Hola Rootk,ya me leí el enlace que me indicaste, lo tendré en cuenta a partir de ahora. Bueno con el tema del error que comentaba,estuve probando la aplicación y resulta que cuando se conecta mas de un usuario(ya sea desde ordenadores diferentes o desde el mismo) falla.En la aplicación uso dos clases para trabajar con la base de datos, una para tabajar de forma conectada y otra desconectada(con dataset). Concretamente me está fallando una función que saca un registro del dataset, y me falla cuando la llamo desde un frame que tengo en toda la aplicación el cual se está actualizando continuamente. A parte del error que indiqué ahí arriba, también me salta el siguiente error en la misma línea:

Detalles de la excepción: System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.

Error de código fuente:


Línea 2103: conConexion.Open()
Línea 2104: 'y rellenamos el dataset ConjuntoDatos
Línea 2105: Adaptador.Fill(ConjuntoDatos, "tab") 'falla aqui
Línea 2106: 'una vez rellenado el dataSet volvemos a cerrarla.
Línea 2107: conConexion.Close()

Como ves la conexión la cierro, y me extraña que me de esa excepción, por que todos los objetos que utilizo están instanciados con el new. No comprendo porque me falla cuando se conecta más de un usuario, porque con un solo usuario esa función me funciona perfectamente.
Por último, disculpame pero no se lo que son los poolings. Espero haberlo dejado más claro para que podais ayudarme. Saludos

Última edición por Jorge05; 23/08/2005 a las 10:26 Razón: se me olvidó mencionar una cosa
  #4 (permalink)  
Antiguo 24/08/2005, 10:21
 
Fecha de Ingreso: mayo-2005
Mensajes: 68
Antigüedad: 19 años
Puntos: 0
Hola, teneis idea de lo que me puede estar pasando, perdonad si insisto, pero me queda poco tiempo ya. Gracias de antemano.
  #5 (permalink)  
Antiguo 24/08/2005, 10:37
Avatar de yiyocastro  
Fecha de Ingreso: octubre-2004
Ubicación: Maracaibo, Venezuela
Mensajes: 314
Antigüedad: 19 años, 6 meses
Puntos: 0
Yo se que es...
te conectas demasiado a la base de datos... entonces dice que no te puedes conectar. como si no aprovecharas una conexión si no fueran demasiadas.

de hecho en una pag. web no deberian haber mas de 1 conex por solicitud de pag.
__________________
Nada es verdad, nada es mentira, todo esta en el cristal con que lo miras. :si:
  #6 (permalink)  
Antiguo 24/08/2005, 14:20
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Iniciado por yiyocastro
te conectas demasiado a la base de datos... entonces dice que no te puedes conectar.
Eso no tiene nada que ver friend.., ya que si configuras tu BD para que soporte poolings de connections y tu BD la tienes sobre un cluster (por ejemplo) tu soporte será muy sólido y el perfomance bueno .. aún cuando tengas muchas conexiones al mismo tiempo..

Cita:
Iniciado por Jorge05
y me extraña que me de esa excepción, por que todos los objetos que utilizo están instanciados con el new.
2 cosas..

1.- Cual es el code que tienes

2.- Estás seguro que tu query se ejecuta correctamente y que tu dataset está instanciado..??


Cita:
Iniciado por Jorge05
Por último, disculpame pero no se lo que son los poolings
http://msdn.microsoft.com/library/de...taprovider.asp
http://www.ondotnet.com/pub/a/dotnet.../connpool.html
http://www.15seconds.com/issue/040830.htm
  #7 (permalink)  
Antiguo 25/08/2005, 04:31
 
Fecha de Ingreso: mayo-2005
Mensajes: 68
Antigüedad: 19 años
Puntos: 0
Pregunta

En el código lo que tengo es lo siguiente:
Por un lado tengo el código de cada página, luego tengo dos módulos, uno para la clase conectada, y otro para la clase desconectada, que llaman a los métodos de estas clases.
Dentro de los módulos, en cada función creo un objeto de la clase que vaya a usar. Te pongo un trozo de código del módulo desconectado:

Public Function DevuelveRegistroUsuario(ByVal intIdUsuario As Integer, ByVal strCadConex As String) As DataRow
Dim registro As DataRow
objBD = New clsADODesc

registro = objBD.SacaRegistroUsuario(intIdUsuario, strCadConex)

Return registro
End Function

Public Function SacaTabla(ByVal strCadConex As String, ByVal strSQL As String, ByVal strNomTab As String) As DataTable
Dim tabla As DataTable
objBD = New clsADODesc

tabla = objBD.DevuelveTabla(strCadConex, strSQL, strNomTab)

Return tabla
End Function

Por lo pronto no se si será correcto crear en cada función un objeto, o debería crearlo en la página y pasarselo al módulo, para usar menos memoría, no se si esto puede influir en el fallo que me está dando.

Te pongo un trozo de la clase desconectada que he hecho, mas concretamente la función que me está fallando(ojo, esta función me falla solo cuando hay varios usuarios conectados):

Public Function SacaRegistro(ByVal strCadConex As String, ByVal strSQL As String) As DataRow
Dim cmdBuilder As SqlCommandBuilder
Dim registro As DataRow
Dim tabla As DataTable
Dim intX As Integer

conConexion = New SqlConnection(strCadConex)
Adaptador = New SqlDataAdapter(strSQL, conConexion)
ConjuntoDatos = New DataSet
cmdBuilder = New SqlCommandBuilder(Adaptador)

conConexion.Open()
'y rellenamos el dataset ConjuntoDatos
Adaptador.Fill(ConjuntoDatos, "tab")' falla aqui ******
'una vez rellenado el dataSet volvemos a cerrarla.
conConexion.Close()

tabla = ConjuntoDatos.Tables("tab")
registro = tabla.Rows(0)

Return registro
End Function

Pongo tabla.Rows(0), porque el resultado de la consulta devuelve un solo registro.

La consulta se ejecuta correctamente, y el dataset como puedes ver también lo tengo instanciado.

Por último, he estado leyendome lo del connection pooling, y lo que no tengo muy claro es en que zona del código debo poner lo de
Pooling=true
Pooling=yes

si ponerlo en cada función y procedimiento de la clase, o ponerlo en la zona de declaraciones de la clase...o donde?


Gracias por vuestra ayuda, saludos.
  #8 (permalink)  
Antiguo 26/08/2005, 08:02
 
Fecha de Ingreso: mayo-2005
Mensajes: 68
Antigüedad: 19 años
Puntos: 0
Alguna idea de lo que me puede estar pasando??
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:55.