241 messaggi dal 02 ottobre 2001
dopo aver autenticato un utente, gli faccio scaricare un file pdf..la procedura funziona, solo che, se metto il blocco di gestione delle eccezioni, dopo che mi sono inviato una mail per comunicarmi che è avvenuto un errore, faccio il redirect dell'utente ad una pagian errore
questo è il codice:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim path As String = Server.MapPath("../mdb-database/listini/" & Request("ID") & ".pdf")
Dim file As New FileInfo(path)


Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" & Request("ID") & ".pdf")
Response.AddHeader("Content-Length", file.Length.ToString())

Response.ContentType = "application/pdf"
Response.WriteFile(file.FullName)
Response.End()
Catch ex As Exception

Dim mailNew As New System.Web.Mail.MailMessage
mailNew.From = "info@lansec.it"
mailNew.To = "info@castaweb.it"
mailNew.Subject = "Sito lansec-errore"
mailNew.Body = "IDUtente: "
If Request.IsAuthenticated = True Then
mailNew.Body = mailNew.Body & Request.Cookies("lansec")("IDUtente")
End If
mailNew.Body = mailNew.Body & vbCrLf
mailNew.Body = mailNew.Body & vbCrLf
mailNew.Body = mailNew.Body & vbCrLf
mailNew.Body = mailNew.Body & "pagina:"
mailNew.Body = mailNew.Body & vbCrLf
mailNew.Body = mailNew.Body & vbCrLf
mailNew.Body = mailNew.Body & Request.ServerVariables("query_string")
mailNew.Body = mailNew.Body & vbCrLf
mailNew.Body = mailNew.Body & vbCrLf
mailNew.Body = mailNew.Body & "REMOTE_ADDR: " & Request.ServerVariables("REMOTE_ADDR")
mailNew.Body = mailNew.Body & vbCrLf
mailNew.Body = mailNew.Body & "REMOTE_HOST: " & Request.ServerVariables("REMOTE_HOST")
mailNew.Body = mailNew.Body & vbCrLf
mailNew.Body = mailNew.Body & vbCrLf
mailNew.Body = mailNew.Body & ex.ToString
mailNew.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = ConfigurationSettings.AppSettings("sendusing")
mailNew.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = ConfigurationSettings.AppSettings("smtpserver")
mailNew.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = ConfigurationSettings.AppSettings("smtpserverport")
mailNew.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = ConfigurationSettings.AppSettings("smtpauthenticate") '
mailNew.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = ConfigurationSettings.AppSettings("sendusername")
mailNew.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = ConfigurationSettings.AppSettings("sendpassword")
SmtpMail.SmtpServer = ConfigurationSettings.AppSettings("smtpserver")
SmtpMail.Send(mailNew)



End Try

funziona solo che, se alla fine aggiungo un redirect alla pagina errore, ottengo un errore.....
30 messaggi dal 12 aprile 2006
L'errore che ottieni è mica Thread was being aborted. ?
241 messaggi dal 02 ottobre 2001
esatto!

e il redirect è questo:
Response.Redirect("errore.aspx?err=2", False)
30 messaggi dal 12 aprile 2006
Guarda è un errore che ogni tanto viene fuori anche a me. Sinceramente non ho ben capito quali sono i momenti in cui si scatena ma ho notato che lo fa spesso nel caso in cui un evento viene terminato prima della fine. Il redirect cmq lo fa lo stesso, almeno nei miei casi (per esempio su eventi come ItemCommand delle datagrid).

In alcuni casi sono riuscito a risolverlo usando
Response.Redirect("www.indirizzo.it", True)

che permette sostanzialmente di terminare l'esecuzione del codice e di eseguire il Redirect alla fine (penso dell'evento in cui viene richiamato). Però mi rendo conto che non sempre può andare bene come soluzione.

Se non ho capito male il problema tuo è che a quel punto la tua pagina di errore ti visualizza l'errore della response e non più l'eventuale errore di invio della mail, giusto?
Modificato da valerio.servetto il 18 aprile 2006 12.45 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.