经典的asp页面引发“内部服务器500错误”

时间:2016-01-14 10:40:35

标签: vbscript asp-classic

连接文件

<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "abc","ID","Password"
    conn.commandtimeout=120

    Set RS = Server.CreateObject("ADODB.RecordSet")
    rs.activeConnection = Conn

%>

经典ASP文件

<%response.buffer = true%>
<%Response.Expires = 0%>
<!-- #include file="functions.asp" -->

<% Response.Write session("RequestID")%>
<%if session("ValidLogon") <> "true" then
    if request("FromEmail") = "True" then
        SetSessVar()
    else%>
        <%response.redirect "Default.asp"
    end if
end if%>

<html>
<body>

<%rs.Source = "SELECT * from tblRequests WHERE RequestID = " & request("requestID")

rs.Open

session("RequestID") = rs("requestid")

if rs("RequestType") = "O" then

    response.clear

    If request("Tag") = "Change" then
        response.redirect "abc.asp#change"
    else
        response.redirect "abc.asp?From=" & request("From")
    end if

else

    response.clear

    If request("Tag") = "Change" then
        response.redirect "editinternal.asp#change"
    else
        response.redirect "editinternal.asp?From=" & request("From")
    end if

end if
rs.close%>

</body>
</html>

我检查了经典的asp页面,看起来“Body”标签内的语法有错误。我对此一无所知。

内部服务器错误500。

3 个答案:

答案 0 :(得分:0)

在连接文件中,Set上缺少rs.activeConnection = Conn,因为您正在设置对ADODB.Connection对象实例的对象引用而不传递连接字符串。

'Object instances require Set
Set rs.activeConnection = Conn

答案 1 :(得分:0)

请确保您将站点配置为向客户端发送详细的错误消息

这描述了如何: Show detailed errors

我猜你的连接“abc”/“ID”/“密码”必须是真正的连接。看来你刚刚写了些什么来看看会发生什么。它也可能是您包含的“functions.asp”文件。该文件是否存在,它包含什么?

请回复您的详细错误消息,然后我们会帮助您更好。

答案 2 :(得分:0)

在引用记录集之前,您应该检查记录集是否包含任何记录,如:

If not rs.eof then
  Session("reqestid") = rs("reqestid")
  ....
End If

只想在这里添加一个trix,尝试在body标签

之后添加这两行
Response.Write "<br>For the sake of debug"
Response.Flush

如果你有缓冲,这有时会写出错误而不是抛出错误500.经常帮助我。