error http 500

22/06/2006 - 08:26 por jorge | Informe spam
En una pagina asp necesito listar 19000 registros de articulos y en local
funciona bien pero en internet da error http 500.
Si le pongo un contador para que en el bucle do until rs.eof cuando llegue a
11793 se pare funciona, pero apartir de esa cifra da error http 500.
Recordar que en local muestra perfectamente los 19000 registros.

Saludos.

Preguntas similare

Leer las respuestas

#1 Dani Castillo
22/06/2006 - 09:05 | Informe spam
No es excesivo 19000 registros en una única pagina? :-O

Creo q en programacion para internet hay q tener claro q no es igual a la
programacion en entorno local , la programacion web requiere tener algo en
cuenta las limitaciones de un navegador :-S, yo no mostraria mas de 100
registros en una pagina

Pongamos que para mostrar una fila de un registro necesites, en numeros
redondos 100 caracteres , incluidos formatos (para la tabla, colores etc)
19.000 registros x 100 bytes = 1.9 Megas de fichero html !, las paginas web
no se suponen hechas para ese tipo de ficheros tan grandes :-S por un lado
el navegador tiende a funcionar mal en esas condiciones, por otro el
servidor puede 'atascarse' sirviendolas por internet

si se trata de algo tipo 'cliente servidor' donde debas enviar esos
ficheros, tambien se aplica casi lo mismo

yo usaria paginacion al mostrar registros, (paginas de 100 registros
quizas), te dara menos problemas , piensa q aun si consigues que 'funcione'
enviar 19000 regisrtos de golpe puede dejar a tu servidor colgado mientras
realiza ese envio :-S, en intranet es un momento, pero por web puede ser
demasiada carga y resultar un fichero inmanejable por pc's algo antiguos

como te digo, mejor paginar registros, y herramientas de búsqueda, que un
fichero plano tan grande :-|




_____________________
Dani
_____________________
"jorge" escribió en el mensaje
news:
Mostrar la cita
a
Mostrar la cita
#2 jorge
22/06/2006 - 18:21 | Informe spam
Gracias Dani por la respuesta.
Lo que comentas tienes razon y lo comunique al cliente de la aplicacion,
pero al ser su servidor web dedicado y el cliente quiere que se muestren
todos los articulos pues asi lo hice. Pero sigo con la duda de porque nada
mas abrir la pagina si se van a tratar todos los registros da error 500 y si
el contador lo pongo por debajo 11793 no da error. Es como si el programa
supiera lo que voy a mostrar en funcion del contador.

cont=0
Do until rs.eof
cont=cont+1
if cont>11793 then exit do
<-- asi funciona -->

if cont>11794 then exit do
<-- asi NO funciona y si comento la linea tampoco -->



"Dani Castillo" escribió:

Mostrar la cita
#3 jorge
22/06/2006 - 18:53 | Informe spam
Gracias Dani por la respuesta.
Lo que comentas tienes razon y lo comunique al cliente de la aplicacion,
pero al ser su servidor web dedicado y el cliente quiere que se muestren
todos los articulos pues asi lo hice. Pero sigo con la duda de porque nada
mas abrir la pagina si se van a tratar todos los registros da error 500 y si
el contador lo pongo por debajo 11793 no da error. Es como si el programa
supiera lo que voy a mostrar en funcion del contador.

cont=0
Do until rs.eof
cont=cont+1
if cont>11793 then exit do
<-- asi funciona -->

if cont>11794 then exit do
<-- asi NO funciona y si comento la linea tampoco -->



"Dani Castillo" escribió:

Mostrar la cita
#4 Dani Castillo
22/06/2006 - 21:37 | Informe spam
Mmm posiblemente tengas o bien los errores descriptivos del ie (con lo q si
algo falla solo te muestra el error aunq lleve media pagina procesada) o
tengas buffer activo (parecido, pero es el servidor el que puede cortar el
envio)


"jorge" escribió en el mensaje
news:
Mostrar la cita
#5 German Saer
23/06/2006 - 00:34 | Informe spam
Jorge,

El servidor no sabe cuantos registros vas a mandar, pero el buffer se llena
y entonces "el servidor se queja" y genera un error. Se le acabo el tiempo
o el buffer para mandar tal cantidad de registros via internet. Estoy de
acuerdo con la recomendacion de Dani, pero si de todos modos necesitas
mandar todos los registros, te recomendaria tratar de liberar el buffer cada
por lo menos 1000 registros a ver si asi funciona.

cont=0
Do until rs.eof
if cont Mod 1000 = 0 then
Response.Flush
cont= 0
else
cont=cont+1
end if
<-- tu script -->
rs.MoveNext
Loop

Ve a ver si esto te ayuda.

Thanks,

______________
German Saer
Orlando, FL 32810




"Dani Castillo" wrote in message
news:%
Mostrar la cita
si
Mostrar la cita
nada
Mostrar la cita
y
Mostrar la cita
programa
Mostrar la cita
la
Mostrar la cita
etc)
Mostrar la cita
ser
Mostrar la cita
antiguos
Mostrar la cita
un
Mostrar la cita
Ads by Google
Search Busqueda sugerida