Let's you specify priority value of the ASP thread which will read form data from a client.
vThreadPriority = ASPForm.ThreadPriority
ASPForm.ThreadPriority = vThreadPriority
ThreadPriorities - Priority values for the thread.
ASP takes a lot of processor time to read data from a client and then transfer the data from IIS process (inetinfo.exe) to asp process (dllhost.exe). One client uploading huge files with good internet connection can cause other asp pages on your internet server slow down. Response times to other clients accessing your asp pages at the same time of upload can be worse then.
You can set a little bit less thread priority for the thread reading upload data using ThreadPriority property. Windows will handle other requests than upload with higher priority. ASPForm uses the priority only during Read method.
ASPForm calls SetThreadPriority Win32 API function with ThreadPriority value before Read method and with tpNormal after Read.
Upload - handle other requests with higher priority |
<%
'This file is using ThreadPriority to set less thread priority for upload
Dim DestinationPath
DestinationPath = Server.MapPath("UploadFolder")
Dim Form: Set Form = Server.CreateObject("ScriptUtils.ASPForm")
Server.ScriptTimeout = 2000
Form.SizeLimit = &H10000000
Form.ThreadPriority = -1
If Form.State = 0 Then 'completed
Form.Files.Save DestinationPath
Response.Write "<br><Font Color=green>Files (" & _
Form.TotalBytes \1024 & "kB) was saved to " & _
DestinationPath & " folder.</Font>"
ElseIf Form.State > 10 Then
Const fsSizeLimit = &HD
Select Case Form.State
Case fsSizeLimit: Response.Write _
"<br><Font Color=red>Source form size (" & _
Form.TotalBytes & "B) exceeds form limit (" & _
Form.SizeLimit & "B)</Font><br>"
Case Else Response.Write _
"<br><Font Color=red>Some form error.</Font><br>"
End Select
End If'Form.State = 0 then
%> |
AddConnection, CancelConnection, CheckRequirements, Read, Sleep, StringToBinary
BytesRead, Files, FormType, getForm, CharSet, ChunkReadSize, Items, MaxMemoryStorage, NewUploadID, ReadTime, ReadTimeout, SizeLimit, SourceData, State, TempPath, Texts, ThreadPriority, TotalBytes, UploadID
The ASPForm collection retrieves the values of form elements posted to ASP script by a form using the POST method. ASPForm can process multipart/form-data or application/x-www-form-urlencoded data with length up to 2GB.
© 1996 - 2009 Antonin Foller, Motobit Software | About, Contacts | e-mail: info@pstruh.cz