[ASP] server execute

server execute [ASP] - ASP - Programmation

Marsh Posté le 03-06-2003 à 09:26:27    

Salut,
je fais un

Server.Execute("la_version_" & version & ".htm" )


comme ca, il m'ouvre directement la page dans la page qui appelle le execute!
Mon problème, c'est que cela marche tres bien en local, mais sur le serveur (qui doit avoir une version plus ancienne), ca me fais ca :

Erreur d'exécution Microsoft VBScript erreur '800a01b6'  
 
Propriété ou méthode non gérée par cet objet: 'Execute'  


J'ai deja essayer de faire un 'include' dynamique, ca ne peut pas marcher.... :/
Comment faire? Il faudrait installer la dernière version de l'ASP? comment on fais ca? (je connais pas le principe, est-ce que c'est intégré à IIS ou est-ce kon peu le mettre à jour a part?)
Merci


Message édité par gothico le 03-06-2003 à 09:26:45
Reply

Marsh Posté le 03-06-2003 à 09:26:27   

Reply

Marsh Posté le 03-06-2003 à 10:44:25    

Ca peut aussi être un problème de sécurité, ce genre de fonctions sont souvent désactivées chez les hébergeurs, tout comme les includes de fichiers se trouvant à un niveau inférieur.
 
Sinon, je te recommande de ne pas utiliser le server.execute, pas plus que le server.transfert (c'est encore pire) car c'est EXTRÊMENT lent.
 
La page met environ 20 fois plus de temps à s'éxécuter, du fait que si au final elle semble n'être que inclue dans la page appelante, elle a été éxécutée par un nouveau thread de l'interpréteur, plus quelques autre détails. Je te renvoie à la MSDN pour voir les avantages et les inconvénients.

Reply

Marsh Posté le 03-06-2003 à 10:45:28    

Sinon, le include doit planter je pense parceque tu dois avoir une balise <%@ Language="VBScript" %> en header du include. Il ne faut pas qu'il y ait cette ligne, un include étant FORCEMENT dans le même langage que la page appelante.

Reply

Marsh Posté le 03-06-2003 à 11:24:11    

Si c'est un pb de sécurité, dis moi comment je le désactive, car le serveur est ici (enfin, un PC kil y a en bas, en salle serveur)?
 

MagicBuzz a écrit :

Sinon, le include doit planter je pense parceque tu dois avoir une balise <%@ Language="VBScript" %>


Je n'ai pas cette ligne dans mon code pourtant....
Mais, le include ne marche pas, car l'execution de l'asp ne ce fait pas à l'intérieur du commentaire HTML qu'il fo mettre pour un include en ASP...... :/

Reply

Marsh Posté le 03-06-2003 à 11:25:37    

MagicBuzz a écrit :

Sinon, je te recommande de ne pas utiliser le server.execute, pas plus que le server.transfert (c'est encore pire) car c'est EXTRÊMENT lent.


Moi je veux bien, mais comment alors? car si je ne peux pas faire d'appel dynamique comme ca, je m'en v retourner à l'HTML  :whistle:  
 :lol:

Reply

Marsh Posté le 03-06-2003 à 11:33:31    

Chelou ton problème d'include...
 
Exemple :
 
Fichier : default.asp

<%@ Language="VBScript" %>
<html>
<head><title>Exemple</title></head>
<body>
<b><u>Sans l'include :</u></b><br>
<%
for i = 1 to 10
   response.write "i = " & i & "<br>" & vbCrLf
next
%>
<!-- #INCLUDE FILE="inc.asp" -->
</body>
</html>


 
 
fichier : inc.asp

<br><b><u>Avec l'include :</u></b><br>
<%
for i = 1 to 10
   response.write "<font color=""red"">i = " & i & "</font><br>" & vbCrLf
next
%>


 
Normalement ça marche très bien :heink:
 
 
Sinon, pour la sécu du server.execute, je sais pas, je sais juste que ça se désactive, mais faut faire ça en manuel (dans le bdr je suppose)
 
PS: c'est quelle version de IIS sur le serveur... C'est quand même pas IIS 2.0 :??: (version de base livrée avec NT4). Si c'est le cas, télécharge le Option Pack 4 sur le site de M$, ça contient IIS 4.0 qui même si c'est toujours une merde, au moins il marche à peut près (IIS 2.0 est très fortement déconseillé par M$ eux-même, et c'est pour cette raison que l'Option Pack 4 est 100% gratuit alors que plus qu'une mise à jour, il contient de nouvelles versions pour certains produits, donc normalement il devrait être payant.

Reply

Marsh Posté le 03-06-2003 à 12:56:43    

Je vais voir ca de plus pres, mais pd que j'y suis, j'ai jamais compris l'interet de ca "<%@ Language="VBScript" %>", tu peux me l'expliquer?
Encore merci http://60gp.ovh.net/~metalfor/mf/forumphp/images/smiles/xp1700.gif

Reply

Marsh Posté le 03-06-2003 à 13:04:29    

Je ne comprends pas bien ce que tu fais dans ton exemple :heink: , moi ce que je veux faire, c'est un include qui est différent selon une variable passé...
Equivalent à cela :  

'recupération de la variable passée
version=Request.Querystring("version" )
'execution de la page
Server.Execute("la_version_" & version & ".htm" )


Message édité par gothico le 03-06-2003 à 13:10:26
Reply

Marsh Posté le 03-06-2003 à 20:26:20    

La ligne <%@ Language="VBScript" %> est très utile car :
 
Amuse-toi à écrire "JavaScript" à la place de "VBScript" dans cet écran, tu vas voir la tronche de ton site :)
=> Par défaut, un certain nombre d'hébergeurs sont configurés en "JavaScript", ne tenant pas compte des avertissements de M$ à propos du très mauvais support JavaScript.
 
http://www.manga-torii.com/files/iis_vbs.png
 
 
Sinon, pour ce que tu veux faire, pas moyen autrement qu'avec un execute en effet.
 
Si la page à inclure est une page HTML simple (sans ASP), tu peux toujours faire :
 
Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject" )
Response.Write fso.OpenTextFile("la_version_" & version & ".htm" ).ReadAll()
set fso = Nothing


Message édité par MagicBuzz le 03-06-2003 à 20:26:34
Reply

Marsh Posté le 04-06-2003 à 09:12:25    

Oki  ;)  
 
Oui, c'est bien que du HTML, j'ai essayé ca :

Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject" )
Response.Write fso.OpenTextFile("la_version_" & version & ".htm" ).ReadAll()
set fso = Nothing


Il me dis ca :

Objet Server erreur 'ASP 0177 : 800a0035'  
 
Échec de Server.CreateObject  
 
la_version.asp, ligne 15  
 
Opération terminée avec succès.  


Ligne 15 : Response.Write fso.OpenTextFile("la_version_" & version & ".htm" ).ReadAll()
:/

Reply

Marsh Posté le 04-06-2003 à 09:12:25   

Reply

Marsh Posté le 04-06-2003 à 14:53:02    

Sur quel serveur tu as ça ?
 
Chez toi ? Chez l'hébergeur ?
 
Quelle version de Windows/IIS ?
 
Parceque là, c'est super basique comme objet.
 
PS: ça plante à la ligne 14, mais l'interpréteur de IIS est un peu merdique, ça plante souvent à la ligne pécédente ;)

Reply

Marsh Posté le 04-06-2003 à 15:01:25    

Sur le serveur!
C'est WinNT server je crois avec IIS 3.0, c'est un ancetre :/
S'il ne veut pas créer l'objet, ca veut dire que c foutu alors? il faut que j'upgrade? (ca va etre difficile ca....)

Reply

Marsh Posté le 04-06-2003 à 15:13:56    

Regarde la version d'IE sur le serveur

Reply

Marsh Posté le 04-06-2003 à 15:22:51    

gothico a écrit :

Sur le serveur!
C'est WinNT server je crois avec IIS 3.0, c'est un ancetre :/
S'il ne veut pas créer l'objet, ca veut dire que c foutu alors? il faut que j'upgrade? (ca va etre difficile ca....)


faut installer IE 4.02 minimum sur le serveur pour que ça marche (et normalement, faut mettre le Option Pack 4 de NT4 (gratuit) qui est aussi vital (et même beaucoup plus) que les SP, puisqu'il contient notamment IIS4 qui est on ne peut plus évolué que IIS3 (c'est pas encore la joie, mais c'est déjà ça :D)
 
PS: IE 4.02 (IE4 SP2) est REQUIS pour cause de compatibilité an 2000, donc tu peut toujours faire une tête à l'admin qui gère le serveur en lui mettant dans les dents qu'il te fourni un environnement qui n'est pas exploitable.


Message édité par MagicBuzz le 04-06-2003 à 15:24:23
Reply

Marsh Posté le 04-06-2003 à 15:27:17    

Pkoi IE 4.02? Il y est pour quelque chose IE pour de l'ASP?  :heink:  
Et ca veut dire que mon objet server ne contient pas les propriétés CreateObject et Execute ?
 
EDIT : dans ce cas, c'est en installant IIS 4.0 que ca les ajoutera?


Message édité par gothico le 04-06-2003 à 15:28:27
Reply

Marsh Posté le 04-06-2003 à 15:43:07    

MagicBuzz a écrit :

tu peut toujours faire une tête à l'admin qui gère le serveur en lui mettant dans les dents qu'il te fourni un environnement qui n'est pas exploitable.


C'est tjs difficile et long à avoir :/
Mon problème, c'est que ca doit etre bouclé jeudi soir......


Message édité par gothico le 04-06-2003 à 15:43:26
Reply

Marsh Posté le 04-06-2003 à 16:16:54    

J'ai demandé, c'est IE 5 kil y a!!
Ca devrait marcher?
 
EDIT : c'est NT4 server et IIS 4.0 aussi, la ca devrait vraiment marcher nan?
 :cry:


Message édité par gothico le 04-06-2003 à 17:43:00
Reply

Marsh Posté le 04-06-2003 à 18:07:56    

Normalement, oui, sans aucun problème. Si ça marche pas, c'est que l'admin est un emmerdeur et qu'il a désactivé la compilation des scripts, et dans ce cas, t'es bloqué.
 
Y'a rien de plus chiant qu'un administrateur de serveur web sous NT...
 
Soit c'est une quiche, et le serveur se fait hacker en 10 minutes, soit c'est un nuxien de base, et il désactive tout, ce qui fait qu'on n'a plus aucun intérêt à avoir un serveur vu qu'il est inutilisable...

Reply

Marsh Posté le 05-06-2003 à 08:28:56    

MagicBuzz a écrit :

désactivé la compilation des scripts.


Comment tu fais ca? car, au pire, je vais le réactiver  :whistle:

Reply

Marsh Posté le 05-06-2003 à 11:37:43    

Aller, je ne vous embete plus, tant pis pour eux, j'ai fait la méthode à la bourrin  :D  
En tout cas, merci bcp MagicBuzz (au fait, t'as pu arriver chez toi pas trop tard hier? :sarcastic: )

Reply

Marsh Posté le 05-06-2003 à 20:24:11    

Je sais pas du tout comme on désactive ça, désolé.
 
La solution de bourrin consistant à supprimer la clé dans la BDR où est défini l'objet. (tout composant ActiveX utilisé par l'ASP est forcément défini dans la BDR)
 
Sinon, bah hier je suis rentré à la même heure qu'avant hier : à point d'heure :sweat:
 
Du coup ce soir j'ai mis les bouts sans avoir eu le temps de tester mes dernières modifs... En plus je fais une démo avec le directeur et tout dans la grande salle de réunion, avec une vingtaine de personnes :D Ca va être drôle :D
 
"Comment ça 'Errur 500' ? :o Attendez, je vous corrige ça tout de suite... Voilà, ça marche maintenant :D"

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed