Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Iniciándome en el tema Intraweb (https://www.clubdelphi.com/foros/showthread.php?t=8698)

tcp_ip_es 30-03-2004 16:33:23

Iniciándome en el tema Intraweb
 
Me he instalado delphi 7 e intraweb 7 y tengo dudas a la hora de implementar mis programillas... ya que en modo diseño (dentro de delphi) mu bien, pero a la hora de llamar a los ISAPI o CGI-STANDALONE desde un navegador es un poco lioso, porque por ejemplo si quieres tener generar un cgi-standalone (exe) luego lo tienes que dejar corriendo como un servicio del w2000, hasta ahi bien, pero a la hora de llamarlo no se como hacer para que tenga una dirección lógica y no un 127.0.0.1:xxxx/exec (localhost) , yo quisiera algo asi como nombredeempresa:81/aplicacionx/exec pero esto no se como hacerlo.

Otra tema, si quisiera tener dos aplicaciones distintas debo tener corriendo dos servicios distintos?? (supongo que si pero estoy un poco verde en esto)

Si me pudieran indicar como, o algún manual en español de intraweb donde lo explique os lo agradecería por partida doble ;)

jachguate 30-03-2004 17:22:17

No puedo aportar un manual en esta ocasión... pero si una idea importante.

un cgi, en ningun momento es un Servicio que dejarás corriendo.

Tenes que tener un web-server con soporte para cgi's (digamos, apache) bien configurado, y con una ruta virtual que apunte a la carpeta donde vas a dejar tu cgi. Digamos: /cgi-bin/, apuntando a tu carpeta c:\web\cgi\, donde colgaras los cgi's generados.

luego, invocas a tu cgi, via web-server:

http://localhost/cgi-bin/micgi.cgi

para que responda como http://www.tuempresa.com/cgi-bin/micgi.cgi, por supuesto tenes que tener el dominio tuempresa.com apuntando a la máquina donde resida. Si estas en una red local, bastará con que la máquina que corre el web-server se identifique como miempresa para poder invocarlo del a forma http://miempresa/cgi-bin/micgi.cgi.

Hasta luego.

;)

tcp_ip_es 30-03-2004 17:48:21

estoy de acuerdo contigo
 
estoy de acuerdo contigo en que un cgi no es un servicio de hecho se ejecuta y muere. Pero en el caso de Intraweb tienes que dejar corriendo el programa en si (cgi, lo que genere Intraweb, o el propio motor de intraweb apuntando a mi cgi... ) escuchando en un puerto aleatorio para que cuando lo llames : 127.0.0.1:Puertox/EXEC pueda funcionar.

Antes de meterme con el tema de Intraweb, ya he programado con cgi-standalones, y ISAPI(dll), y entiendo su funcionamiento, pero en el caso de Intraweb me pierdo.

Muchas Gracias y un saludo

Mick 31-03-2004 20:57:31

Lo de instalarlo como servicio es correcto, intraweb genera un ejecutable que consiste en un servidor web completo. Si tienes dos aplicaciones en intraweb tienes que instalar las dos como servicio y en puertos distintos.

En la segunda cuestion, vamos por partes:

nombredeempresa:81/aplicacionx/exec

El numero de puerto (en tu ejemplo el 81) lo puedes configurar en tiempo de diseño en las propiedades del objeto/modulo IWSErverController que se habra generado al crear un projecto de tipo Intraweb 7, concretamente la propiedad Port.
Si quieres que el puerto se pueda configurar a posteriori durante la ejecucion del programa, en el evento OnCreate del Objeto IWServerController puedes asignar la propiedad Port por codigo, leyendola previamente de un fichero ini por ejemplo:

Código:

procedure TIWServerController.IWServerControllerBaseCreate(
  Sender: TObject);
var
 Ini:TIniFile;
begin
 Ini:= TIniFile.Create( ChangeFileExt(ParamStr(0),'.ini') );
 try
  SessionTimeout:= Ini.ReadInteger('General','SessionTimeout',15);
  Port          := Ini.ReadInteger('General','WebPort',80);
  ExecCmd  := 'presupuestos';
 finally
  Ini.Free;
 end;
end;

La parte '/aplicacionx/exec' tambien la puedes configurar en una propiedad del objeto IWServerController concretamente: 'ExecCmd' , mira tambien el codigo anterior.

En cambio la parte 'nombredeempresa' no la puedes configurar en intraweb ya que nada tiene que ver con el servidor web. Eso es simplemente el nombre del equipo y tendras que cambiar la configuracion de windows para ponerle el nombre que tu deses. Si tu ordenador se llama pepe, pues llamaras a las paginas del servidor web con:

http://pepe/presupuestos

la ip 127.0.0.1 es simplement un alias al ordenador local, es decir las siguientes llamadas son mas o menos equivalentes:

http://127.0.0.1/presupuestos
http://localhost/presupuestos
http://nombre_de_tu_ordenador/presupuestos

Saludos
Miguel

tcp_ip_es 01-04-2004 10:42:47

:p Muchísimas gracias Miguel, me ha servido mucho tu comentario, y me ha aclarado bastantes conceptos. Mi problema a parte de mi desconocimiento del tema fue que me baje una versión de la página de atozed la 7.0.20 y no me fijé en que era de evaluación, y claro uno de los límites que me ponía era que el puerto aunque lo fijes en la propiedad de IwServerController, al ejecutarlo saca uno aleatorio.... os dejo para vuestro conocimiento las limitaciones de la versión de evaluación ....

Cita:

* Unique Port Numbers - When using the stand alone server in the evaluation version of IntraWeb, the port numbers that your IntraWeb application listens will be unique upon each execution. Any port settings you may specify will be ignored. Testing is facilitated in evaluation mode by use of the execute menu item as it automatically adjusts its URL for the changing port.
*IP Restriction - In the evaluation version, IntraWeb applications only listen on the IP 127.0.0.1. No requests from other IP addresses will be served.
No service installation - Installing the stand alone server as a service is disabled.
* No SSL - SSL is disabled in the evaluation version.
* No Deployment License - You may not deploy any applications created with the evaluation version.
De nuevo muchas gracias Mick, seguramente dejaré más problemas que me vayan surgiendo segun vaya utilizando Intraweb.

Saludos, Tony

StartKill 02-04-2004 19:04:33

Impresionado con IntraWeb
 
Holas my's friend's :cool:

Soy nuevo en mundo del internet y he quedado impresionado con los ejemplos de IntraWeb, me he atrevido a hacer un ejemplo pequeño de un libro y su vez me guie de nuestro amigo "MICK" con respecto al puerto 80 y ExecCmd con resultados satisfactorios :p

Pero tengo un problema: :( "No todo es de color de rosa."

En principio por si las dudas mi aplicacion intraweb es una DLL y la estoy ejecuntado en modo local PWS Windows-98 con delphi 7.00 y la intraweb que viene por defecto en delphi7.0 que es la 5.0(creo)

Esta *.dll queda en memoria y cuando vuelvo a re-compilar mi aplicacion y quiero copiar la DLL en la carpeta scrpits no lo hace por que dicha DLL esta en uso.

Lo que hago es renombrar mi nueva DLL para mis nuevas pruebas. ;)

No se como sacar la DLL de memoria, salvo que apague mi pc :) , existe alguna forma "decente" para esto? :confused:

Your Friend

StartKill
Lima-Perú

carlosmoralesm 03-04-2004 00:11:00

yo estoy usando Dynip para direccionar hacia la pagina de intraweb ya que cada que me conecto a internet tengo una ip publica distinta entonces desde una pagina de internet detecto la ip y depues la mando a un mail para que sepan a que direccion y a que pueto conectarse para entrar directamente a la intraweb

jachguate 03-04-2004 00:15:43

Pues si esta es parte de un servicio... supongo que bastará con que bajes el servicio, compiles el proyecto, y luego lo volvas a levantar.

Hasta luego,

;)

Onti 03-04-2004 00:40:37

Si bien bajando el servicio del IIS puedes modificar actualizar una aplicacion .dll que se esta ejecutando, sin embargo en la mayoria de los casos que implementas una aplicacion Web en internet no tienes acceso a bajar el servicio. Para estos casos recurri la solucion que nos proveen el la pag. http://www.eggcentric.com/ISAPILoader.htm

Una solucion muy simple e ingeniosa y sobre todo gratis que ayudo muchisimo en este problema

Salu2

Raul

carlosmoralesm 03-04-2004 00:58:09

intraweb no genera una pagina normal de internet asi que para ponerla en internet tienes que tener un ip privado para colgarla de ahi o en Dynip para que puedas redireccoinar, de todos modos nececitas saber tu ip publica asi que bueno hay detalles

StartKill 03-04-2004 19:24:46

Hola my friend's

Publicado por nuestro amigo Jachguate

Cita:

Pues si esta es parte de un servicio... supongo que bastará con que bajes el servicio, compiles el proyecto, y luego lo volvas a levantar.
Por mas que he intento encontrar alguna opcion "servicio" o algo parecido no lo ubico :confused:

Solo quiero recordarles que estoy en modo local y com PWS-98 y creo que PWS-98 no tiene esa opcion (bueno eso quiero creer para justificar mi ignorancia)

Con respecto a la dirección que nos da nuestro amigo "Onti" aun no la he probado, estoy por enlazarme a esta.

Gracias a todos.

Your Friend,

StartKill
Lima-Perú

jachguate 04-04-2004 05:49:53

no me di cuenta que era win'98... supongo que tenes un ícono en el tray, o alguna forma de "bajar" el Personal Web Server... (cerrar el programa), que seria lo equivalente a bajar un servicio.

Hasta luego.

;)

tcp_ip_es 05-04-2004 17:24:39

ISAPI Manager
 
Existe una aplicación que es gratis que te baja la dll de memoria sin tener que tirar el IIS o PWS... se llama ISAPI Manager ahí os dejo la dirección...

http://www.dataweb.de/en/ordering/do...tml#IsapiTools




Saludos, Tony

mamaro 17-07-2007 14:01:49

hola
 
El problema que les está pasando con IIS es que éste carga la dll la primer vez que es utilizada, y luego la mantiene en memoria para futuros llamados (por lo que el archivo queda bloqueado).

Por eso al intentar borrarla o sobreescribirla genera un error (o simplemente no hace nada); para solucionar esto existe una opción dentro de IIS que hace que se descargue la librería una vez que se dejó de usarla.

ATENCIÓN: Esta opción sólo debe ser utilizada mientras se está desarrollando, ya que al momento de ponerla en producción es mucho más rápido que la mantenga cargada en memoria.


La franja horaria es GMT +2. Ahora son las 19:38:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi