server execute [ASP] - ASP - Programmation
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.
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.
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......
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
Marsh Posté le 03-06-2003 à 11:33:31
Chelou ton problème d'include...
Exemple :
Fichier : default.asp
<%@ Language="VBScript" %> |
fichier : inc.asp
<br><b><u>Avec l'include :</u></b><br> |
Normalement ça marche très bien
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.
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
Marsh Posté le 03-06-2003 à 13:04:29
Je ne comprends pas bien ce que tu fais dans ton exemple , 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 |
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.
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
Marsh Posté le 04-06-2003 à 09:12:25
Oki
Oui, c'est bien que du HTML, j'ai essayé ca :
Dim fso |
Il me dis ca :
Objet Server erreur 'ASP 0177 : 800a0035' |
Ligne 15 : Response.Write fso.OpenTextFile("la_version_" & version & ".htm" ).ReadAll()
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
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....)
Marsh Posté le 04-06-2003 à 15:22:51
gothico a écrit : Sur le serveur! |
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 )
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.
Marsh Posté le 04-06-2003 à 15:27:17
Pkoi IE 4.02? Il y est pour quelque chose IE pour de l'ASP?
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?
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......
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?
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...
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
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
En tout cas, merci bcp MagicBuzz (au fait, t'as pu arriver chez toi pas trop tard hier? )
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
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 Ca va être drôle
"Comment ça 'Errur 500' ? Attendez, je vous corrige ça tout de suite... Voilà, ça marche maintenant "
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