Foros del Web » Programando para Internet » ASP Clásico »

ASP y DLL's

Estas en el tema de ASP y DLL's en el foro de ASP Clásico en Foros del Web. Hola a todos, Estoy empezando en esto de las ASP's y me he encontrado con un problema, que soy incapaz de resolver. Me he creado ...
  #1 (permalink)  
Antiguo 16/04/2002, 03:01
 
Fecha de Ingreso: abril-2002
Mensajes: 5
Antigüedad: 23 años
Puntos: 0
ASP y DLL's

Hola a todos,

Estoy empezando en esto de las ASP's y me he encontrado con un problema, que soy incapaz de resolver.
Me he creado una pág. ASP que utiliza una serie de objetos definidos por mí mediante una DLL. Para poder utilizar estos objetos, lo único que hago desde la página es...
<%
...
miObj = Server.CreateObject("MiDLL.NombreMiObjeto&quo t;)
...
%>

El problema viene cuando en alguna ASP se me olvida liberar este objeto con un Set miObj = Nothing o falla la página.
Como consecuencia de esto, cuando intento recompilar mi DLL, me da un error de permiso denegado (como si todavia estuviera residente en memoria). El caso es que he intentado "desregistrar" la DLL con el regsvr32 /u (devuelve un error de LoadFailed...), reiniciar el servidor (PWS), cerrar el Explorador, borrar Cache... e incluso reiniciar la máquina, pero no puedo volver a recompilarla. La única manera es crearme una nueva DLL que contiene los mismos objetos, pero con diferente nombre.

La pregunta es obvia, ¿alguien sabe como liberar esa DLL?

Si alguien se ha encontrado alguna vez con un problema similar y me quiere dar la solución, se lo agradecería.

Muchas gracias.
Un saludo.
  #2 (permalink)  
Antiguo 16/04/2002, 03:20
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 23 años, 6 meses
Puntos: 0
Re: ASP y DLL's

Para que se usan los dlls?

Saludoss
  #3 (permalink)  
Antiguo 16/04/2002, 03:21
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 23 años, 2 meses
Puntos: 1
Re: ASP y DLL's

La verdad ni idea, pero por que no intentas con el Regedit directamente ?
Busca mi.dll con F3 y eliminala donde se encuentre.

Suerte y saludos !
  #4 (permalink)  
Antiguo 16/04/2002, 03:46
 
Fecha de Ingreso: abril-2002
Mensajes: 5
Antigüedad: 23 años
Puntos: 0
Re: ASP y DLL's

Debido a que VBScript tiene sus limitaciones, a veces necesitamos poder definir objetos propios (clases en VB) que nos permitan realizar diferentes tareas (o simplemente para facilitarnos la programación de las ASPs).

Por poner un ejemplo, yo las utilizo sobre todo para encapsular todo lo que es el acceso a Bases de Datos. Creo una serie de objetos que me permiten trabajar a más alto nivel, sin tener que estar trabajando siempre con objetos como el Connection, etc.

Es simplemente otra metodología.

Por lo que respecta a lo del regedit, también lo he probado. He intentado borrarlas manualmente del registro, pero tiene que haber algo más, porque me sigue negando el poder crear de nuevo la DLL.

De todas formas, gracias por contestar.
Un saludo. :)
  #5 (permalink)  
Antiguo 16/04/2002, 09:53
 
Fecha de Ingreso: abril-2002
Mensajes: 6
Antigüedad: 23 años, 1 mes
Puntos: 0
Re: ASP y DLL's

Yo suelo trabajar con clases, en vez de Visual Basic, con clases de ASP (otra forma de trabajo). Con lo cual, consigo las ventajas de tener un cierto encapsulamiento de datos pero ademas evito los problemas que pueden ocasionar el tener que registrar las dll cada vez que son modificadas! Y para mi, me resulta mas comodo, modificar una pagina de clases ASP que un componente!
  #6 (permalink)  
Antiguo 17/04/2002, 12:39
 
Fecha de Ingreso: abril-2002
Ubicación: México D.F.
Mensajes: 4
Antigüedad: 23 años
Puntos: 0
Re: ASP y DLL's

Hola,

Mira el problema se encuentra en que al momento de cargar una pagina asp que contenga la llamada a tu dll en cualquier browser, la dll se queda en memoria por lo que no la puedes borrar o reemplazar, lo que tienes que hacer es reiniciar tu maquina y en cuanto inicie de nuevo, parar los servicios del PWS, para que puedas recompilar tu dll, una vez que lo hayas podido hacer, levanta los servicios del PWS y debe trabajar correctamente.

Te recomiendo ampliamente que no olvides nunca destruir tus objetos con Set MiObj = Nothing, puesto que esto te libera recursos de tu sistema.

Espero que te haya servido...

Saludos!
  #7 (permalink)  
Antiguo 17/04/2002, 13:23
 
Fecha de Ingreso: febrero-2002
Mensajes: 32
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: ASP y DLL's

Perdon!!!

Pero para mi lo que tienes que hacer es detener el PWS que dentro de las herramientas administrativas lo veras Servicio de Internet Information Server, Y a veces no solo tiene que de tenerlo con el boton de stop sino que te tienes que ir al otro icono que hay dentro de herramientas administrativas y servicios y detienes el que dice Administracion de IIS. Y con eso ya esta. A mi me pasaba lo mismo y asi lo consegui porque conque cuando reinicias la maquina lo servicion estan detenidos pero como el que dice listos para correr. Pero de esta forma realmente lo detienes y los liberan. Pero no le des vueltas al coco por lo de nothing porque no es por eso.

Espero que te ayude mi explicacion.

Ramon
  #8 (permalink)  
Antiguo 18/04/2002, 06:03
 
Fecha de Ingreso: abril-2002
Mensajes: 5
Antigüedad: 23 años
Puntos: 0
Re: ASP y DLL's

Gracias a todos, he conseguido resolver el problema.

Es cierto que realmente el problema estaba en los servicios. Me he creado un script para parar y arrancar los servicios automaticamente. No sirve hacer un simple Stop y Start del PWS sino que has de arrancar el servicio de Administracion del IIS. :)

Gracias a todos por la ayuda y un saludo ;)
  #9 (permalink)  
Antiguo 18/04/2002, 13:17
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: ASP y DLL's

me parece todo bien lo ke se ha dicho, solo kiero hacer una consulta y una acotacion.


GodLike: por que de repente mezclan el IIS con el PWS. Con que plataforma trabajas..porque me parece que no pueden existeir estos dos servicios en una sola...pensaba ke el IIS estanabn en plataformas de servidor (nt,w2000 server,etc) y el PWS en workstation (win98,95,etc).

Ahora sobre el tema de liberación de objetos claro que tien importancia dejar el objeto en nothing despues de ocupar el componente. Es claro que si no usas esta sentencia despues de un tiempo el servicio (IIS o PWS) te libera los objetos..pero ojo...despues de un tpo y si el nro de usuarios concurrentes es alto puedo causarte una sobrecarga en el sitio y colapsar....basta que esto lo prueben creando un package en el MTS y pruebeb sobrecargando el sitio y veran como crece infinitamente el nro de objetos abiertos...es un desastre...yo te recominedo como dijo alguien por ahi que te preocupes de cerrar los objetos despues de usarlos-..

uf...eso es todo

:)
  #10 (permalink)  
Antiguo 19/04/2002, 04:32
 
Fecha de Ingreso: abril-2002
Mensajes: 5
Antigüedad: 23 años
Puntos: 0
Re: ASP y DLL's

Hola Bakanzipp,

Yo estoy trabajando con un NT Workstation y el PWS (por ahora ya me basta :) ). No es que se mezclen el IIS con el PWS, sino que cuando vas al administrador de servicios del NT, no encuentras un servicio específico para el PWS. De hecho, el servicio que hay se llama "Servicio de Admin. IIS", por eso parece que se estén mezclando los dos conceptos, pero no es así.
El motivo de porqué se llama así..... ni idea !!! Supongo que es cosa de Microsoft :)

Respecto al tema de liberar Objetos... completamente de acuerdo contigo ( ), se han de liberar y es una muy buena política el hacerlo (lo que pasa es que este tema surgió, porque en un principio yo pensaba que mi problema podría deberse al hecho de habérseme olvidado liberar alguno, simplemente).

Un saludo.

  #11 (permalink)  
Antiguo 02/04/2003, 15:43
inukisoft
Invitado
 
Mensajes: n/a
Puntos:
Tengo algo que aportar, pero esto es una muy buena practica.
si registramos las dlls en el servidor de componentes, estas se tienen que compilar con compatibilidad binaria. Asi podemos usarlas y que no sean tomadas por el servidor web. Podemos modificarlas y recompilarlas. Pero en el caso que el servidor de componentes este ejecutando transacciones, hay que detenerlo y volver a compilar y ejecutar nuevamente.
por lo demas, es cierto, hay que reiniciar el iis cuando las componentes no estan registradas en el servidor de componentes. esta es una verdadera lata y perdida de tiempo. por eso es mejor probar las dlls en un entorno tipo visual basic y cuando estas seguro que funcionan todas las cosas que tienen que hacer la invocas en una página ASP.

Bueno... creo que pude comprobrar que el IIS es como el Ajo. Nos vemos para otra.
  #12 (permalink)  
Antiguo 02/04/2003, 16:25
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
bueno, por suerte este tema de los sitios con el uso de dll's ya esta pasando a la historia...con varios clientes que hemos trabajado han sifrido tanto como nosotros este tema...ya que cuando se tratan de sitios grandes hay que construir no solo una dll sino por lo menos unas 10...

y esto de actualizar una o mas dll's..que bajar los servicios...desregistrar...sacarlas del MTS (cuando es necesario)...eliminar...volver registrar y bla..bla..bla...

creo ke mocosoft se dio cuenta de la paja que haya que darse para que todo quede funcionando y copio con buena letra el entorno de sun's...

ennnnnnnnnnnnnnnnnnnnnnn finnnnnnnnnnnnnnnnnnnnnnnnnnn
  #13 (permalink)  
Antiguo 03/04/2003, 02:32
Mai
 
Fecha de Ingreso: febrero-2003
Mensajes: 38
Antigüedad: 22 años, 2 meses
Puntos: 0
Lo unico que me ocurre, es que reinicies desde el servidor de componentes la DLL. Aunque no tengo ni idea de como hacerlo desde el codigo de la pagina, seria muy interesante saaberlo.

Mai
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 07:58.