Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Programación General (http://www.forosdelweb.com/f14/)
-   -   Correr una aplicacion ms-DOS desde un CGI (http://www.forosdelweb.com/f14/correr-aplicacion-ms-dos-desde-cgi-523849/)

marmen 04/10/2007 17:52

Correr una aplicacion ms-DOS desde un CGI
 
Hola.
Que tengo que hacer para correr una aplicacion ms-dos desde un Perl Script CGI bajo windows server 2003 con IIS 6.0. El Script corre pero no ejecuta la aplicacion.
En cambio el script corre perfectamente bajo windows 2000.

jferrero 04/10/2007 19:19

Re: Correr una aplicacion ms-DOS desde un CGI
 
A la hora de ejecutar el programa, ¿das todo el camino hacia ese programa? recuerda que el CGI puede estar ejecutándose en el directorio por defecto del servidor web.

¿Qué error da? ¿Qué dicen los registros de actividad (log)?

marmen 04/10/2007 21:06

Re: Correr una aplicacion ms-DOS desde un CGI
 
No da un error especifico. El script sigue adelante sin ejecutar el programa, muestra en pantalla el contenido de la pagina html desde donde se llama (lo cual genera un pantallazo absurdo) y termina.
Revisare el Log.
Gracias

marmen 05/10/2007 10:01

Re: Correr una aplicacion ms-DOS desde un CGI
 
Jferrero. Cordial saludo.
En cuanto a los caminos para la ejecución de CGI y programa las tengo descritas así:
El CGI corre desde el directorio: /Inetpub/wwwroot/cgi-bin
y para ubicar el programa le estoy dando dentro del script el camino así:
chdir "/websis/webbibg";
no se si en IIS 6.0 exige backslage \ en lugar de slage /.

monoswim 05/10/2007 12:36

Re: Correr una aplicacion ms-DOS desde un CGI
 
no probaste con la ubicación absoluta ?

c:/...

Saludos

jferrero 05/10/2007 12:42

Re: Correr una aplicacion ms-DOS desde un CGI
 
Yo solo veo un problema hasta ahora: que al hacer el chdir el servidor web no te deje hacerlo, por temas de seguridad.

¿Has comprobado el valor de retorno de la función chdir()?

¿De qué forma ejecutas el programa externo? ¿con system, con qx(), con exec()?

marmen 05/10/2007 14:47

Re: Correr una aplicacion ms-DOS desde un CGI
 
El programa externo lo ejecuto son system

jferrero 05/10/2007 17:46

Re: Correr una aplicacion ms-DOS desde un CGI
 
Coloca esto después del system(), para saber qué pasa:
Código:

    if ($? == -1) {
        print "failed to execute: $!\n";
    }
    elsif ($? & 127) {
        printf "child died with signal %d, %s coredump\n",
            ($? & 127),  ($? & 128) ? 'with' : 'without';
    }
    else {
        printf "child exited with value %d\n", $? >> 8;
    }

(sacado de la página de manual de system().

Si el resultado lo sacas en html, quizás tengas que cambiar los print (poner marcas html) o mirar el código fuente de la página html que te devuelva el CGI, para saber qué ha pasado.


La zona horaria es GMT -6. Ahora son las 04:09.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.