2009-10-05 7 views
1

Nous parlons de ASP classique et PAS ASP.NET!Demande ASP classique GET sans multithread

Commençons par le haut. Nous utilisons ISAPI_Rewrite et nous souhaitons proposer dynamiquement à nos clients de contrôler la réécriture des urls (en leur donnant httpd.ini n'est pas une option). Nous pensions que toutes les requêtes url inconnues (nous définissons cela dans httpd.ini) sont contrôlées par un fichier ASP qui crée une requête GET pour sélectionner l'URL (les clients créent la table key -> value). Maintenant, nous pouvons faire une demande à une autre page et juste imprimer la sortie, mais nous ne pouvons pas faire une demande à notre propre serveur. Comme je suis conscient, ASP ne propose pas cela.

Nous pourrions écrire une extension .NET pour contrôler cela mais nous cherchons d'autres options. Je sais que le déclin de .NET est une chose stupide, mais c'est une longue histoire ...

Existe-t-il une solution à ce problème dans ASP?

Répondre

2

Jetez un oeil à Server.Execute il permet l'inclusion de code dynamique (temps d'exécution) d'autres fichiers ASP. Un bonus supplémentaire est qu'il est traité comme faisant partie de la demande d'origine, donc SESSION, COOKIE sont tous disponibles dans le fichier inclus. Cependant, les variables définies dans le maître ne sont pas disponibles pour la page incluse. Vous contournez cela en utilisant des variables de session temporaires cependant. Session.Abandon effacera TOUTES les variables de session, vous souhaiterez peut-être les effacer individuellement.

+0

J'ai remarqué cette solution sur quelques blogs et je l'aime bien. Le seul problème est que la modification d'un grand nombre de fichiers pour prendre en charge la session temporaire n'est pas une option donc il doit supporter le passage des variables au fichier inclus ... – FrEaKmAn

+0

J'ai mis à jour avec un exemple sur la façon de régler et nettoyer les variables de session, pour montrer son pas très intrusif. Ce serait une simple recherche et remplacer sur tous les fichiers inlcuded pour référencer la session à la place. (CODE est en JScript mais ASP classique) –

+0

@Martijn: cela suppose qu'il n'y a pas de raison valable pour maintenir les variables de session dans d'autres pages ASP. J'utilise l'approche de la variable Session/Server Execute mais comme je sais quelles variables j'ai définies, je les supprime simplement après l'appel à server.execute. – AnthonyWJones

0

Vous pouvez faire une demande à votre propre serveur, mais la page qui fait la demande doit de ne pas avoir la session a permis dans la déclaration de la page à droite en haut de la page:

Chaque page verrouille l'objet de session et C'est ce qui vous arrête de faire une demande à votre propre serveur. Si vous déclarez que vous n'utiliserez pas la session dans le script appelant, il ne la verrouillera pas et vous pourrez l'exécuter à nouveau en utilisant XMLRequest et transmettre ce que vous voulez sur la chaîne querystring, afficher les cookies de données et de session exister.