我正在努力为旧的经典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"">"
答案 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)
如果您尝试在页面中的较早位置访问它,它是否有效?