2009-05-19 5 views
5

Я работаю над добавлением функции на старый классический сайт asp и столкнулся с интересной проблемой. В следующей строке на странице результатов в полезной ошибки «требуется объект:„“»Классический ASP - объект запроса Пусто

strServerName = Request.ServerVariables("server_name") 

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

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

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

Спасибо!

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

Update 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"">" 
+0

Пожалуйста, разместите код со страницы (включая заголовок <% %>) и укажите полное имя файла. – RedFilter

+0

Я согласен с OrbMan, этот код работает, если у меня есть только базовая ASP-страница, в которой нет ничего. Можете ли вы предоставить более подробную информацию о своем коде? Возможно, это вызывает внешняя переменная. – CodeLikeBeaker

+0

Страница загружается путем перенаправления с исходной страницы. Я пробовал эту переадресацию, используя следующие 2 метода - возможно, это прольет некоторый свет? (Мои извинения, это уже давно не работает с asp, и даже тогда у меня нет большого опыта). 'Response.Redirect strServerURL & "/order-results-instant.asp?gwstep=1" Ответ.Напишите «" –

ответ

5

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

Dim Request 

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

+1

Вы, сэр, гений !!! Теперь я чувствую себя совершенно и совершенно немым, но я так сильно благодарю вас! –

1

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

+0

Да и другие asp-файлы выполняются без проблем (даже при доступе к объекту Request). –

1

Я скопировал ваш код в мой тестовый файл 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: //» в перенаправление. Возможно, что-то, что я сделал, прольет свет, чтобы помочь вам решить вашу проблему.

благодаря

+0

Я также смог взять вашу пробную страницу и запустить ее без проблем и получить доступ к объекту Request (как и для других страниц на этом же сайте). Но у меня все еще такая же проблема с пустым запросом после перенаправления. Я также проверил, что я использую полностью квалифицированный URL-адрес, и я действительно делал это, и, казалось, не имело значения, чтобы изменить его. –

1

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

+0

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