2009-05-19 6 views
5

Je travaille sur l'ajout d'une fonctionnalité à un ancien site asp classique et a rencontré un problème intéressant. La ligne suivante sur la page de résultats dans l'erreur utile « Objet requis: « » »Classic ASP - Demande d'objet est vide

strServerName = Request.ServerVariables("server_name") 

Quand je joint un débogueur à regarder, demande est en fait vide, que je ne comprends pas comment cela peut se produire? Cette ligne existe sur plusieurs pages et s'exécute sans problème à part celle-ci. Dans ce cas, la page est exécutée par une redirection depuis une autre page.

J'ai cherché une solution pour un jour ou deux maintenant et n'ai pas été en mesure de trouver quelque chose qui a été utile. Je suis désespéré, toutes les idées seraient grandement appréciées.

Oh, et si d'autres informations sont nécessaires, n'hésitez pas à m'appeler.

Merci!

Update 1
Comme demandé, ci-dessous est l'ensemble du code enveloppé dans <%%> tags. Ce bloc existe en tant que premier code dans le fichier (nommé « ordre-résultats instant.asp »):

<% 
strServerName = Request.ServerVariables("server_name") 
strServerName = UCase(strServerName) 

strServerURL = "http://localhost/cbr" 
strServerURLhttps = "https://localhost/cbr" 
strConnect = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=CBR; Integrated Security=SSPI" 

Dim objConn 
Dim sql_stmt 
Dim rs 
%> 

Mise à jour 2
Je l'ai utilisé les 2 méthodes suivantes pour rediriger l'exécution vers cette page - peut-être que cela peut entraîner la perte de la demande?

'Response.Redirect strServerURL & "/order-results-instant.asp?gwstep=1" 
Response.Write "<META HTTP-EQUIV=""refresh"" content=""5;URL=" & strServerURL & "/order-results-instant.asp?gwstep=1"">" 
+0

S'il vous plaît poster le code de la page (y compris <% %> en-tête) et fournir le nom de fichier complet de la page. – RedFilter

+0

Je suis d'accord avec OrbMan, ce code fonctionne si je n'ai qu'une page ASP de base avec rien d'autre. Pouvez-vous fournir plus de détails sur votre code? Il est possible qu'une variable externe en soit la cause. – CodeLikeBeaker

+0

La page est chargée en redirigeant à partir d'une page source en premier. J'ai essayé cette redirection en utilisant les 2 méthodes suivantes - peut-être cela va faire la lumière? (Toutes mes excuses, ça fait longtemps que je travaille avec asp, et même alors je n'ai pas beaucoup d'expérience). 'Response.Redirect strServerURL & "/order-results-instant.asp?gwstep=1" Réponse.Ecrivez "" –

Répondre

5

Parcourez le reste du code. Au niveau mondial, vous trouverez ceci: -

Dim Request 

Renommer cette variable et son utilisation actuelle et l'objet de demande joint au contexte de script deviendra visible.

+1

Vous êtes un génie !!! Je me sens complètement et complètement bête maintenant, mais je vous remercie beaucoup! –

1

Sur votre serveur, l'extension du service Web Active Server Pages est-elle autorisée (activée)?

+0

Oui, et d'autres fichiers ASP s'exécutent sans problème (même lors de l'accès à l'objet Request). –

1

J'ai copié votre code dans mon fichier ASP test avec le code suivant et il redirigé très bien. La seule vraie différence est que j'ajoute "http: //" à la redirection. Peut-être que quelque chose que j'ai fait fera la lumière pour vous aider à résoudre votre problème.

grâce

+0

J'ai également été en mesure de prendre votre page d'exemple et le faire fonctionner sans problème et avoir accès à l'objet de demande (comme je le fais avec d'autres pages dans ce même site). Mais j'ai toujours le même problème avec une demande vide après la redirection. J'ai également vérifié pour m'assurer que j'utilisais une url entièrement qualifiée, et je le faisais en fait, et cela semblait ne faire aucune différence pour le changer. –

1

fonctionne-t-il si vous essayez d'y accéder à un point plus tôt dans la page?

+0

En fait, il s'agit de la première ligne absolue du code exécuté qui échoue. Je l'ai déplacé à un point plus tard dans la page et il en résulte la même erreur. –