Классический ASP - объект запроса пуст - PullRequest
5 голосов
/ 19 мая 2009

Я работаю над добавлением функции на старый классический сайт ASP и столкнулся с интересной проблемой. Следующая строка на странице приводит к полезной ошибке "Требуется объект: ''"

strServerName = Request.ServerVariables("server_name")

Когда я подключил к нему отладчик, запрос фактически пуст, что я не понимаю, как это может произойти? Эта строка существует на нескольких страницах и выполняется без проблем, кроме этой. В этом случае страница выполняется перенаправлением с другой страницы.

Я искал решение в течение дня или около того и не смог найти ничего полезного. Я в отчаянии, любые идеи будут с благодарностью.

О, и если потребуется дополнительная информация, пожалуйста, не стесняйтесь, зовите меня.

Спасибо!

Обновление 1
В соответствии с запросом ниже приведен весь фрагмент кода, заключенный в теги <%%>. Этот блок существует как первый код в файле (с именем 'order-results-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  
%>

Обновление 2
Я использовал следующие 2 метода для перенаправления выполнения на эту страницу - возможно, это может привести к потере запроса?

 '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"">"

Ответы [ 4 ]

5 голосов
/ 19 мая 2009

Сканирование оставшейся части кода. На глобальном уровне вы найдете это: -

Dim Request

Переименуйте эту переменную, и ее текущее использование и объект запроса, присоединенный к контексту скрипта, станут видимыми.

1 голос
/ 19 мая 2009

Я скопировал ваш код в мой тестовый файл asp со следующим кодом, и он просто перенаправился.

<%
strServerName = Request.ServerVariables("server_name")
strServerName = UCase(strServerName)
strServerURL = "http://localhost/"
strServerURLhttps = "https://localhost/"
strConnect = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=CBR; Integrated Security=SSPI"
Dim objConn
Dim sql_stmt
Dim rs  

Response.Write(strServerName)

if Request.Querystring("test") <> "1" then
    Response.Redirect("http://" + strServerName + "/asptest.asp?test=1")
 end if
%>

Единственная реальная разница в том, что я добавляю "http://" к перенаправлению. Может быть, что-то, что я сделал, поможет пролить свет на вашу проблему.

спасибо

1 голос
/ 19 мая 2009

Работает ли оно, если вы пытаетесь получить к нему доступ на более раннем этапе страницы?

1 голос
/ 19 мая 2009

На вашем сервере разрешено (включено) расширение веб-службы Active Server Pages?

...