OVH Cloud OVH Cloud

Problème pour éxécuter fichier exe dans cgi-bin

7 réponses
Avatar
Thierry B.
Bonjour,

Voilà, sur W2K workstation, j'ai IIS5 (version lite donc) et Apache 1.3.28.
Ils sont tous les deux dans leur configuration le plus possible par défaut
('fresh' install). J'ai juste changé la conf d'Apache pour qu'il utilise
c:\inetpub\wwwroot comme racine, les deux serveurs utilisent dont exactement
les même pages, je lance les deux serveurs alternativement.

J'ai créé c:\inetpub\cgi-bin pour y mettre mon programme cgi. Dans IIS, j'ai
créé l'alias cgi-bin qui pointe sur ce répertoire, j'ai mis sur cet alias
Script, Executer, Ecrire, et pour ne pas être embêté avec des problèmes
d'autorisation sur cette machine de test, j'ai mis 'tout le monde' sur tout
les répertoires.

Ceci étant dit, maintenant mon problème. Avec Apache, l'affichage des pages
générées par http:/localhost/cgi-bin/mon.exe se passe sans problème. Avec
IIS5, elles s'affichent aussi, mais à chaque appel de page j'entend un
"ping" sur le serveur, la page s'affiche sur le client apparemment
complètement, mais l'icone en haut à droite d'IE ne s'arrête jamais de
tourner, avec la barre bleue en bas qui ne se termine pas non plus. Si je
laisse, au bout d'un moment, j'ai une page blanche 'Impossible de
d'afficher....', alors que je l'avais déjà à l'écran !
Si je clique sur 'Arrêter', la page arrête de se charger.
Si je continue à naviguer (toujours pages gérées par l'exe), çà recommence
la même chose à chaque page, mais de plus en plus lentement, jusqu'à ne plus
répondre du tout au bout d'un moment.

Est-ce qu'il y a un paramètre quelquepart pour les exe à configurer sur IIS
?. En fait par rapport à Apache, on dirait que pour IIS le flux attendu de
l'exe n'est pas terminé et qu'il attend encore quelquechose, alors que
visuellement tout est affiché.

Merci de vos tuyaux.

Thierry B.

7 réponses

Avatar
Pierre Goiffon
Dans le message:bguhdp$a6n$,
Thierry B. a écrit:
Est-ce qu'il y a un paramètre quelquepart pour les exe à configurer
sur IIS ?. En fait par rapport à Apache, on dirait que pour IIS le
flux attendu de l'exe n'est pas terminé et qu'il attend encore
quelquechose, alors que visuellement tout est affiché.



Mhh, j'ai bien peur que votre EXE ne soit pas correctement écris. Est-ce
que vous auriez une URL pour que l'on puisse tester cela ?

--
_________________________________________________________
/
. Pierre GOIFFON .
. p g o i f f o n @ w e b c i t y . f r .
_________________________________________________________/
Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php
Avatar
Thierry B.
Malheureusement non, c'est sur un intranet. En fait c'est un script perl que
j'ai compilé avec un utilitaire permettant de déployer des scripts perl sur
des machines ou perl n'est pas installé.
Admettons que l'exe soit mal écris, mais pourquoi çà ne pose pas de problème
à Apache ?

Thierry B.

"Pierre Goiffon" a écrit dans le message de
news:bh01jo$o5i$
Mhh, j'ai bien peur que votre EXE ne soit pas correctement écris. Est-ce
que vous auriez une URL pour que l'on puisse tester cela ?


Avatar
Pierre Goiffon
Dans le message:bh03o1$q5b$,
Thierry B. a écrit:
Admettons que l'exe soit mal écris



Précisez un peu ce que l'exe fait, nous pourrons peut être voir...
Vous devriez aussi essayer de faire la requête à la main via un client
telnet, vous verrez très précisément ce qui est renvoyé !

mais pourquoi çà ne pose pas de problème à Apache ?



Il y a des outils plus permissifs que d'autres. Prenez une page HTML non
validée W3C dans IE ou Mozilla, il y a de fortes chances que le résultat
soit très différent.

--
_________________________________________________________
/
. Pierre GOIFFON .
. p g o i f f o n @ w e b c i t y . f r .
_________________________________________________________/
Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php
Avatar
Thierry B.
"Pierre Goiffon" a écrit dans le message de
news:bh0glb$qmn$

Précisez un peu ce que l'exe fait, nous pourrons peut être voir...



Bien pour l'exe, c'est la version compilée du script perl dont la page est
http://stud.fh-heilbronn.de/~zeller/cgi/cvsweb.cgi/, qui permet d'offrir une
interface web en lecture seule à un serveur CVS (gestion de sources). Mais
je n'ai aucun controle sur la version compilée.

Vous devriez aussi essayer de faire la requête à la main via un client
telnet, vous verrez très précisément ce qui est renvoyé !


Je ne vois pas très bien comment faire là. Si je fais un telnet
nom_de_la_machine_serveur, je me retrouve sur le C: de cette machine (Dos).
Je ne vois pas très bien à quoi çà sert. Si j'exécute le programme sans son
répertoire, il me renvoie juste çà, mais ce n'est pas le contexte dans
lequel il doit tourner :

C:InetpubCgi-bin>cvsweb.exe
HTTP/1.0 301 Moved
Location: http:///
Server:
Connection: close

Content-type: text/html

<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<title>Moved</title>
<!-- march-hare.com CVSwebNT $Revision: 1.93.2.2 $ -->
</head>
<body text="#000000" bgcolor="#ffffff">
<img src="/icons/cvsbanner.gif"> <h1 align="center">Moved</h1>
This document is located <A HREF=/>here</A>.
<hr noshade><address><font size=-1>CVSweb by &lt;&gt;</font>
<fon
t size=-1>CVSweb NT by &lt;&gt;</font></address>
Avatar
Thierry B.
C:>telnet http://compt4 80
Connexion à http://compt4...Impossible de se connecter à l'hôte sur le port
80 :
Échec lors de la connexion

Désolé mais je ne comprend pas trop, le serveur telnet sur la machine compt4
écoute par défaut le port 23, comment je peux me connecter à lui sur le port
80. De plus je suppose que si je lui demande d'écouter le port 80 (je ne
sais pas encore comment), il entre en conflit avec le serveur web...

TB


"Yan" <trey@~~ifrance.com> a écrit dans le message de
news:
Thierry B. wrote:
> Si je fais un telnet
> nom_de_la_machine_serveur, je me retrouve sur le C: de cette machine
> (Dos).


Il faut lui préciser le port HTTP :

telnet la_machine_serveur 80

Sinon telnet va taper par défaut sur le port 23, le port... telnet :)


Avatar
Yan
ben sur *le serveur* t'as un serveur telnet (23), et un port web (80)

sur *le client*, t'as un client telnet, mais il est pas obligé de se
connecter au serveur telnet : telnet c'est un programme qui se connecte à ce
que tu veux et qui te montre ce qu'il reçoit. Donc tu peux très bien surfer
sur le net en telnet (enfin c'est tout de suite moins attrayant hein) à
condition de connaître les commandes du protocole HTTP.

te connecter en telnet sur le port 80 fait que tu vas voir ce que le serveur
web qui écoute sur le port 80 envoie au navigateur qui s'y connecte. En
l'occurence, rien, ce qui veut dire que ton serveur web ne tourne pas...
sinon, tu aurais une page vide, et il te faudrait faire ensuite
GET /
ou
GET /cgi-bin/tonappli.exe

pour voir ce qui se produit exactement quand une requête tombe sur le
serveur, puisque la commande GET est celle utilisée par les navigateurs pour
rapatrier les pages

voilà :)
ça te dépanne pas, puisque ton serveur répond pas, mais c'est bon pour la
culture gé !

a+

Thierry B. wrote:
C:>telnet http://compt4 80
Connexion à http://compt4...Impossible de se connecter à l'hôte sur
le port 80 :
Échec lors de la connexion

Désolé mais je ne comprend pas trop, le serveur telnet sur la machine
compt4 écoute par défaut le port 23, comment je peux me connecter à
lui sur le port
80. De plus je suppose que si je lui demande d'écouter le port 80 (je
ne sais pas encore comment), il entre en conflit avec le serveur
web...

TB


"Yan" <trey@~~ifrance.com> a écrit dans le message de
news:
Thierry B. wrote:
Si je fais un telnet
nom_de_la_machine_serveur, je me retrouve sur le C: de cette
machine (Dos).




Il faut lui préciser le port HTTP :

telnet la_machine_serveur 80

Sinon telnet va taper par défaut sur le port 23, le port... telnet :)




Avatar
Pierre Goiffon
Dans le message:bhaqdq$ka2$,
Thierry B. a écrit:
C:>telnet http://compt4 80
Connexion à http://compt4...Impossible de se connecter à l'hôte sur
le port 80 :
Échec lors de la connexion



J'ajouterai à la réponse de Yan que le http:// était de trop dans votre
ligne de commande...

Donc ne pas faire :

telnet http://compt4 80

(on interroge la machine "http://comp4" qui n'existe pas)

Mais :

telnet compt4 80

(on interroge la machine compt4 sur le port 80)

Par ailleurs, je vous encourage vraiment à apprendre sur IP, par exemple
en lisant un gros Eyrolles sur TCP/IP (très bien fait et toujours bon
pour la culture générale)

--
_________________________________________________________
/
. Pierre GOIFFON .
. p g o i f f o n @ w e b c i t y . f r .
_________________________________________________________/
Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php