Connecting Tech Pros Worldwide Forums | Help | Site Map

Active Server Pages error 'ASP 0113' Script timed out

=?Utf-8?B?SnVzdGluIERvaA==?=
Guest
 
Posts: n/a
#1: Sep 29 '08
I am constantly getting the 'Script timed out' error, and would like to see
if there is any way I could modify the ASP page.

I think I did all I could to improved the performance at the database table
level, but when it comes to the ASP, the error occurs most of time.
This error happens when this ASP page has been moved to a new server.

I modified the "server.ScriptTimeout = " at the ASP and also at IIS.
The report does not retrieve the whole records, but it stops in the middle,
and giving this error message.

I am also curious whether .AbsolutePosition might be a factor? But on the
previous server, I had no problem.

Here is the part of ASP page where it retrieves a data.

strSQL = "spHWABPOOrderSelect_1 " & nAcctNum
Dim rsHBSBPOOrder : Set rsHWABPOOrder = New clsRecordSet
With rsHBSBPOOrder
.ConnectionString = ConnHBS
.Load(strSQL)
Dim nTmp
Do While Not .EOF
if .AbsolutePosition = 0 Then
nBPO1Val = Trim(.Fields("curBPOAsIs")&"")
If Len(nBPO1Val) <0 Then
nBPO1Val = FormatCurrency(nBPO1Val, 0)
End If
nTmp = nBPO1Val
dtBPO1 = Trim(.Fields("dtReceived")&"")
ElseIf .AbsolutePosition = 1 Then
nBPO2Val = Trim(.Fields("curBPOAsIs")&"")
If Len(nBPO2Val) = 0 Then
nBPO2Val = nTmp
Else
nBPO2Val = FormatCurrency(nBPO2Val, 0)
End If
dtBPO2 = Trim(.Fields("dtReceived")&"")
End If
.MoveNext
Loop
End With
Set rsHWABPOOrder = Nothing

Bob Barrows [MVP]
Guest
 
Posts: n/a
#2: Sep 29 '08

re: Active Server Pages error 'ASP 0113' Script timed out


This procedure can never return more than 2 records?
If it can, why are you bothering to continue looping through it when
absoluteposition is 1?
Also, why don't you rewrite the procedure to only return two records?

You don't show where the value contained in nAcctNum comes from, but you
are aware that using this technique to execute a procedure leaves you
vulnerable to sql injection, don't you?

Justin Doh wrote:
Quote:
I am constantly getting the 'Script timed out' error, and would like
to see if there is any way I could modify the ASP page.
>
I think I did all I could to improved the performance at the database
table level, but when it comes to the ASP, the error occurs most of
time.
This error happens when this ASP page has been moved to a new server.
>
I modified the "server.ScriptTimeout = " at the ASP and also at IIS.
The report does not retrieve the whole records, but it stops in the
middle, and giving this error message.
>
I am also curious whether .AbsolutePosition might be a factor? But on
the previous server, I had no problem.
>
Here is the part of ASP page where it retrieves a data.
>
strSQL = "spHWABPOOrderSelect_1 " & nAcctNum
Dim rsHBSBPOOrder : Set rsHWABPOOrder = New clsRecordSet
With rsHBSBPOOrder
.ConnectionString = ConnHBS
.Load(strSQL)
Dim nTmp
Do While Not .EOF
if .AbsolutePosition = 0 Then
nBPO1Val = Trim(.Fields("curBPOAsIs")&"")
If Len(nBPO1Val) <0 Then
nBPO1Val = FormatCurrency(nBPO1Val, 0)
End If
nTmp = nBPO1Val
dtBPO1 = Trim(.Fields("dtReceived")&"")
ElseIf .AbsolutePosition = 1 Then
nBPO2Val = Trim(.Fields("curBPOAsIs")&"")
If Len(nBPO2Val) = 0 Then
nBPO2Val = nTmp
Else
nBPO2Val = FormatCurrency(nBPO2Val, 0)
End If
dtBPO2 = Trim(.Fields("dtReceived")&"")
End If
.MoveNext
Loop
End With
Set rsHWABPOOrder = Nothing
--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.


=?Utf-8?B?SnVzdGluIERvaA==?=
Guest
 
Posts: n/a
#3: Sep 29 '08

re: Active Server Pages error 'ASP 0113' Script timed out


Hi Bob,

I appreciate for your feedback.

I am not sure how I could modify the Do While Loop..
Do you have any suggestions?
I know I am only getting two values, but doesn't it have to go through the
end of file?

Regards to your second feedback, I am not sure what you meant.
Quote:
>You don't show where the value contained in nAcctNum comes from, but you
are aware that using this technique to execute a procedure leaves you
vulnerable to sql injection, don't you?

"Bob Barrows [MVP]" wrote:
Quote:
This procedure can never return more than 2 records?
If it can, why are you bothering to continue looping through it when
absoluteposition is 1?
Also, why don't you rewrite the procedure to only return two records?
>
You don't show where the value contained in nAcctNum comes from, but you
are aware that using this technique to execute a procedure leaves you
vulnerable to sql injection, don't you?
>
Justin Doh wrote:
Quote:
I am constantly getting the 'Script timed out' error, and would like
to see if there is any way I could modify the ASP page.

I think I did all I could to improved the performance at the database
table level, but when it comes to the ASP, the error occurs most of
time.
This error happens when this ASP page has been moved to a new server.

I modified the "server.ScriptTimeout = " at the ASP and also at IIS.
The report does not retrieve the whole records, but it stops in the
middle, and giving this error message.

I am also curious whether .AbsolutePosition might be a factor? But on
the previous server, I had no problem.

Here is the part of ASP page where it retrieves a data.

strSQL = "spHWABPOOrderSelect_1 " & nAcctNum
Dim rsHBSBPOOrder : Set rsHWABPOOrder = New clsRecordSet
With rsHBSBPOOrder
.ConnectionString = ConnHBS
.Load(strSQL)
Dim nTmp
Do While Not .EOF
if .AbsolutePosition = 0 Then
nBPO1Val = Trim(.Fields("curBPOAsIs")&"")
If Len(nBPO1Val) <0 Then
nBPO1Val = FormatCurrency(nBPO1Val, 0)
End If
nTmp = nBPO1Val
dtBPO1 = Trim(.Fields("dtReceived")&"")
ElseIf .AbsolutePosition = 1 Then
nBPO2Val = Trim(.Fields("curBPOAsIs")&"")
If Len(nBPO2Val) = 0 Then
nBPO2Val = nTmp
Else
nBPO2Val = FormatCurrency(nBPO2Val, 0)
End If
dtBPO2 = Trim(.Fields("dtReceived")&"")
End If
.MoveNext
Loop
End With
Set rsHWABPOOrder = Nothing
>
--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.
>
>
>
Bob Barrows [MVP]
Guest
 
Posts: n/a
#4: Sep 29 '08

re: Active Server Pages error 'ASP 0113' Script timed out



Justin Doh wrote:
Quote:
Hi Bob,
>
I appreciate for your feedback.
>
I am not sure how I could modify the Do While Loop..
Do you have any suggestions?
I know I am only getting two values, but doesn't it have to go
through the end of file?
No. If you are only getting two records, you don't even need a loop.

With rsHBSBPOOrder
.ConnectionString = ConnHBS
.Load(strSQL)
Dim nTmp
If not .EOF Then
'recordset is automatically pointing at first record
If Len(nBPO1Val) <0 Then
nBPO1Val = FormatCurrency(nBPO1Val, 0)
End If
nTmp = nBPO1Val
dtBPO1 = Trim(.Fields("dtReceived")&"")
.MoveNext
If not .EOF Then
'recordset is now pointing at second record
nBPO2Val = Trim(.Fields("curBPOAsIs")&"")
If Len(nBPO2Val) = 0 Then
nBPO2Val = nTmp
Else
nBPO2Val = FormatCurrency(nBPO2Val, 0)
End If
dtBPO2 = Trim(.Fields("dtReceived")&"")
End If
End If
..Close '<---
End With
Set rsHWABPOOrder = Nothing

<--- I added the .Close statement, but I recognize I may not have had
to. Does your clsRecordSet class have a Terminate event in which the
recordset and connection are closed? I do hope you are explicitly
closing the database connection ...
Quote:
>
Regards to your second feedback, I am not sure what you meant.
Quote:
>You don't show where the value contained in nAcctNum comes from, but
>you are aware that using this technique to execute a procedure
>leaves you vulnerable to sql injection, don't you?
>
>
See what happens if nAcctNum contains something like

1234;create table test (testcol int);

Read about sql injection in these links:
http://www.sqlsecurity.com/DesktopDefault.aspx?tabid=23
http://www.nextgenss.com/papers/adva..._injection.pdf
http://www.nextgenss.com/papers/more..._injection.pdf
http://www.spidynamics.com/papers/SQ...WhitePaper.pdf

--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.


Closed Thread