[Delphi x RedRaven : ISAPI]
[Inicio]

[garcía-cuervo.com]          [Enlaces]  [Trucos]  [Lecciones ISAPI]  [Recursos]          [RedRaven]


Ponga una dll en su vida :
Unas lecciones para desarrollar
extensiones Web ISAPI en Delphi

Firma mi  Libro de visitas  es poca cosa y me hace ilusión.

Notas previas interesantes e importantes
 
 
     Creación y depuración de Dlls
 
 
     Creación y depuración de Dlls sobre PWS
 
 
     Creación y depuración de Dlls sobre IIS
 
 
     Ejecutar una Dll desde Delphi
 
 
Lección Nº 1 : Hola.dll    Una Dll, como no podía ser de otra manera, que nos dice ¡Hola!
Lección Nº 2 : Enlaces.dll    Ahora vamos a mostrar una tabla de enlaces guardados en un fichero de texto.
Lección Nº 3 : Enlaces2.dll    Igual que la anterior pero usando una página diseñada previamente. (mediante TPageProducer)
Lección Nº 4 : Password.dll    Vamos a filtrar, mediante Usuario y Clave, el acceso a una página.
Lección Nº 5 : Sesion.dll    Seguimos filtrando pero vamos a mantener mas accesos validados. mediante Cookies.
Lección Nº 6 : Telefonos.dll    Un ejemplo del mantenimiento completo de un fichero en Internet, con Alta, Baja Modificación y Consulta. Mis teléfonos en la Web.
   

 


   
Unas notas previas interesantes e importantes.
 
 
Versiones Delphi :     Todos los ejemplos que aparecen en estas lecciones han sido compilados y probados en Delphi 3 y 5, ambas versiones Client / Server, teniendo en ambos casos diferencias mínimas en cuanto a los que aquí nos interesa, la creación de extensiones Web ISAPI.
 
Versiones Servidor Web :     Todos los ejemplos que aparecen en estas lecciones han sido  probados usando los Servidores Web PWS (Personal Web Server) sobre Windows Millenium y IIS 5.0 (Information Internet Server) sobre Windows 2000 Server.
 
     Fuera de estas versiones de Delphi y Servidores Web no tengo experiencia ...
 
   
Creación y depuración de Dlls :    Todas las Dlls (Dynamic Link Library) tienen la característica de almacenarse en memoria a fin de ser usadas múltiples veces optimizando su velocidad de acceso y siendo el sistema quien determina cuando deben ser descargadas, por desuso, de memoria. Esto hace que mientras que estén en memoria no se pueden compilar de nuevo ya que el sistema nos devuelve un error al compartir al estar aún en uso. A continuación describo el método para solventar esta circunstancia así como donde colocar nuestros trabajos.
 
   
Creación y depuración sobre PWS (Personal Web Server) :    El directorio por defecto con permisos de ejecución en una instalación estándar de PWS, por ejemplo la que realiza FrontPage 98, es C:\Webshare\WWWRoot\cgi-bin que después podrá ser invocada en el navegador de internet como http://localhost/cgi-bin  y es aquí donde debemos poner nuestras Dlls modificando convenientemente Project Manager / Project Options / Directories - Conditionals / Output Directory
 
     Para forzar a PWS a descargar las Dlls de memoria tras usarlas debemos cambiar una entrada en el registro de Windows, para ello ejecutamos el Editor del Registro mediante Menú Inicio / Ejecutar / Regedit y a continuación modificamos la entrada binaria  HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \W3SVC \ Parameters \ CacheExtensions poniendola a 0 (cero) - Si no existe debemos crearla y ponerla a 0.
 
   
Creación y depuración sobre IIS (Internet Information Server) :    El directorio por defecto con permisos de ejecución en una instalación estándar de IIS en una instalación estándar de Windows 2000 es C:\Inetput\Scripts que después podrá ser invocada en el navegador de internet como http://localhost/scripts  y es aquí donde debemos poner nuestras Dlls modificando convenientemente Project Manager / Project Options / Directories - Conditionals / Output Directory
 
     Paras forzar a IIS a descargar las Dlls de memoria tras usarlas debemos usar el Administrador de Servicios de Internet que podemos encontrar en Inicio / Programas / Herramientas Administrativas / Administrador de Servicios de Internet en el que desplegamos nuestro servidor y seleccionamos el Sitio Web por defecto y con botón derecho del ratón vemos sus propiedades. En la carpeta Directorio particular seleccionamos Configuración en la sección Configuración de Aplicación  y desmarcamos el Chekbox denominado Almacenar aplicaciones Isapi en caché de la carpeta Asignaciones para la Aplicación. Tal como se muestra en las imágenes más abajo:
 
 



 

 



 

   
     Más información sobre estos asuntos en Microsoft Developer Network (MSDN)
   
Ejecutar una Dll desde Delphi :    Para ejecutar una Dll desde Delphi debemos configurar la opción Run del IDE de Delphi con el fin de decirle qué aplicación será la que llame a ésta, que le sirva de host, y dónde está ubicada nuestra Dll así como los parámetros que debamos pasarle. Para ello seleccionamos en Delphi la opción del menú Run / Parameters y escribimos en Host Application el Path completo del Internet Explorer, en este caso C:\ Archivos de programa \ Internet Explorer \ IEXPLORE.EXE y en Run parameters el Path completo de nuestra Dll, en este caso http://localhost / scripts / MiDeEleEle.dll tal como muestra la imagen a continuación.