Avatar billede asker Nybegynder
14. august 2001 - 16:50 Der er 19 kommentarer og
1 løsning

TimeOut

Jeg får den her fejl i forbindelse med at jeg sætter et script til at lave ca. 800 mail ((XXX))

/mail/SpawnedMailerSend.asp

The maximum amount of time for a script to execute was exceeded. You can change this limit by specifying a new value for the property Server.ScriptTimeOut or by changing the value in the IIS administration tools.

Jeg har læst at man kan overrule serveren timeOUT MED ET SCRIPT
1. er det rigtigt

2. hviket script

3. hvor skal det sættes ind  i min kode
Avatar billede jacobve Nybegynder
14. august 2001 - 16:52 #1
som den skriver, så kan du jo ændre Server.ScriptTimeOut, til en tid der passer dig..

fx Server.ScriptTimeOut = 30 (mener det angives i minutter)
Avatar billede asker Nybegynder
14. august 2001 - 16:56 #2
Hvor skal det sættes ind i min kode


<%

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"SpawnedMailer.mdb\")

Dim mFrom,mTo,mSubject,mbcc,mBody,mArchive
mFrom = Request.Form(\"myemail\")
mTo = Request.Form(\"to\")
mSubject = Request.Form(\"subject\")
mbcc = Request.Form(\"users\")
mBody = Request.Form(\"body\")
mArchive = Request.Form(\"archive\")

response.write(\"Nyhedsbrevet er sendt til:<br><br>\" & mbcc )


strSQL = \"SELECT MailingAddy, MailingID FROM MailingList\"
set Res = Conn.Execute(strSQL)
while not Res.EOF
  Set Mail = Server.CreateObject (\"CDONTS.NewMail\")
  Mail.From = mFrom
  Mail.To = res(\"MailingAddy\")
  Mail.Subject = mSubject                                                                                                                                                                                                                                                                                                                                                                   
  Mail.Body = mBody & \"----------------------------------------------------------------------------\" & vbcrlf & \"Ønsker du at ændre din Email addresse kan du trykke på det her link: \"  & vbcrlf & \"www.vipiil.dk/mail/MailEdit.asp?Action=Redigere&num=\" & res(\"MailingID\") & vbcrlf & vbcrlf & vbcrlf & \"STOP med at modtage dette nyhedsbrev. Klik her:\"  & vbcrlf & \"www.vipiil.dk/mail/MailEdit.asp?Action=Slet&num=\" & res(\"MailingID\")
  Mail.BodyFormat = 1
  Mail.Mailformat = CDOMailFormatMIME
  Mail.Send
  Set Mail = Nothing
Res.MoveNext
wend

if mArchive = \"1\" then

set conn=Server.CreateObject(\"ADODB.Connection\")
conn.Provider=\"Microsoft.Jet.OLEDB.4.0\"
conn.Open(Server.Mappath(\"SpawnedMailer.mdb\"))

ArchiveSQL = \"INSERT into Archive (ArchiveSubject,ArchiveBody) VALUES (\'\" & mSubject & \"\',\'\" & mBody & \"\');\"
conn.Execute ArchiveSQL
response.write(\"<br><br><br><font color=\'#FF0000\'>Brevet er nu Arkiveret!</font><br><br>\")

conn.close

end if

response.write(\"<br><br><br><center><a href=\'AdminIndex.asp\'>ADMIN HOME</a><center>\")

%>


Og overruler den en evt default fra serveren

Jeg har ikke kontrol over serveren
Avatar billede mesterlars Nybegynder
14. august 2001 - 16:56 #3
bare sæt det ind lige i starten
Avatar billede oswald Nybegynder
14. august 2001 - 16:56 #4
Du kan også skrive et punktum (Response.write \".\") for hver gang du sender en e-mail. Derved burde du kunne undgå timeout.
Avatar billede mesterlars Nybegynder
14. august 2001 - 16:58 #5
I øvrigt mener jeg scripttimout på sideniveau angives i sekunder

Default er 90 sekunder.
Avatar billede asker Nybegynder
14. august 2001 - 16:58 #6
Er det så kun får den her side det gælder eller
Avatar billede mesterlars Nybegynder
14. august 2001 - 16:59 #7
ja
Avatar billede jacobve Nybegynder
14. august 2001 - 17:00 #8
ja, det gælder kun det script/side
Avatar billede oswald Nybegynder
14. august 2001 - 17:01 #9
Problemet med at sætte scripttimeout er at brugeren kan blive utålmodig og trykke refresh. Og så har du endnu en side der står og sender mail\'s til de samme sæt af personer.
Avatar billede jacobve Nybegynder
14. august 2001 - 17:02 #10
undre mig lige en gang....hvorfor også 800 mails?

jeg kan høre på det hele at du ikke skal have min mailadresse...
Avatar billede jacobve Nybegynder
14. august 2001 - 17:06 #11
never mind.. kiggede ikke koden igennem ordentligt...
Avatar billede jacobve Nybegynder
14. august 2001 - 17:18 #12
Avatar billede oswald Nybegynder
14. august 2001 - 17:22 #13
Prøv at overveje at lægge en Response.write \".\" ind efter Res.MoveNext. Jeg tror der vil spare dig for nogle tilfælde af \'Invalid User Error\' og en script timeout.
Avatar billede mesterlars Nybegynder
14. august 2001 - 17:27 #14
derudover.

Er det virkeligt nødvendigt at erklære mail objectet 800 gange inde i dit loop?

Prøv at læg det før loopet sammen med
from, subject, bodyformat og mailformat

Læg derudover linien med: Set mail = nothing
Efter loopet
Avatar billede asker Nybegynder
14. august 2001 - 17:43 #15
Ja for så får jeg en email med kun en til >>til hver og ikke bcc eller mange emails i cc
Avatar billede asker Nybegynder
14. august 2001 - 17:45 #16
Hvordan tester jeg det uden at sende emails
Avatar billede asker Nybegynder
14. august 2001 - 18:19 #17
Jeg ved godt hvordan jeg tester det , men kan jeg evt se om time outen virker
Avatar billede asker Nybegynder
14. august 2001 - 18:22 #18
Er vi sikre på at det ikke er Session.Timeout den er gal med
Avatar billede giuggio97 Nybegynder
15. august 2001 - 11:05 #19
Nej, Session.Timeout er noget andet.
Prøv med at gemme resultat fra db i en array med arrayRes = Res.GetRows()
Bagefter kan du loope igennem med:
For i=0 to ubound(arrayRes, 2)
    \'arrayRes(0, i) =MailingAddy
    \'arrayRes(1, i) =MailingID
    Call SendMail(arrayRes(0, i), arrayRes(1, i))
Next

PS: Du skal lave funktionen SendMail
Avatar billede asker Nybegynder
13. oktober 2001 - 15:34 #20
Tak for hjælpen.....og undskyld den sene respons
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester