经典ASP - 请求对象为空

时间:2009-05-19 16:09:25

标签: iis asp-classic vbscript

我正在努力为旧的经典asp网站添加一个功能,并遇到了一个有趣的问题。页面上的以下行会产生有用的错误“Object required:''”

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
我已经使用以下两种方法将执行重定向到此页面 - 这可能导致请求丢失?

 '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 个答案:

答案 0 :(得分:5)

扫描其余代码。在全球范围内,您会发现: -

Dim Request

重命名此变量,其当前用法和附加到脚本上下文的Request对象将变为可见。

答案 1 :(得分:1)

在您的服务器上是否允许(打开)Active Server Pages Web服务扩展?

答案 2 :(得分: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://”。也许我所做的事情会帮助你解决问题。

感谢

答案 3 :(得分:1)

如果您尝试在页面中的较早位置访问它,它是否有效?