我的代碼有什麼問題?我正在啓動按鈕單擊事件中的線程。我沒有收到任何錯誤,但不會觸發發送電子郵件。我的代碼有什麼問題?
Dim thread As New Thread(New ThreadStart(AddressOf sendEmail))
thread.Start()
thread.IsBackground = True
thread.Priority = System.Threading.ThreadPriority.Normal
Response.Redirect(getRedirectionPath)
Public Sub sendEmail()
Response.Redirect("~/Index")
End Sub
它爲什麼不起作用?
更新:我得到的錯誤「線程已被中止」
更新:按照要求我已經上傳了整個代碼片段
Protected Sub btnLocalSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLocalSubmit.Click
'Dim _User As MembershipUser = Membership.GetUser(_userName)
'Dim _UserGUID As Object = _User.ProviderUserKey
Dim _con As New SqlConnection(ConfigurationManager.ConnectionStrings("CitizenJDBConnectionString").ConnectionString)
Dim _sqlComm As New SqlCommand("INSERT INTO LocalReport VALUES (@UserID,@ReportTitle,@Report,@State,@City,@Locality,'0','0',@Tags,@TimeStamp)", _con)
Try
_sqlComm.Parameters.Add("UserID", Data.SqlDbType.VarChar)
_sqlComm.Parameters("UserID").Value = _userName
_sqlComm.Parameters.Add("ReportTitle", Data.SqlDbType.VarChar)
_sqlComm.Parameters("ReportTitle").Value = txtLocalReportTitle.Text
_sqlComm.Parameters.Add("Report", Data.SqlDbType.VarChar)
_sqlComm.Parameters("Report").Value = ckLocalReport.Text
_sqlComm.Parameters.Add("State", Data.SqlDbType.VarChar)
_sqlComm.Parameters("State").Value = ddlState.SelectedValue
_sqlComm.Parameters.Add("City", Data.SqlDbType.VarChar)
_sqlComm.Parameters("City").Value = ddlCity.SelectedItem.Value
_sqlComm.Parameters.Add("Locality", Data.SqlDbType.VarChar)
_sqlComm.Parameters("Locality").Value = txtLocation.Text
_sqlComm.Parameters.Add("Tags", Data.SqlDbType.VarChar)
_sqlComm.Parameters("Tags").Value = txtLocalTags.Text
_sqlComm.Parameters.Add("TimeStamp", Data.SqlDbType.DateTime)
_sqlComm.Parameters("TimeStamp").Value = DateTime.Now
_con.Open()
_sqlComm.ExecuteNonQuery()
_con.Close()
Dim logic = New connections
logic.emailsToSend(User.Identity.Name, getURL, reportedBy)
'sendEmail()
Dim thread As New Thread(New ThreadStart(AddressOf sendEmail))
thread.Start()
Response.Redirect(getRedirectionPath)
Catch ex As Exception
MsgBox(ex.Message)
Response.Write(ex.Message)
Finally
_con.Close()
_con.Dispose()
_sqlComm.Dispose()
End Try
End Sub
Public Sub sendEmail()
Dim _con As New SqlConnection(ConfigurationManager.ConnectionStrings("CitizenJDBConnectionString").ConnectionString)
Dim _sqlDataAdapter As New SqlDataAdapter("SELECT * FROM EmailSender", _con)
Dim _table As New System.Data.DataTable
Try
_con.Open()
_sqlDataAdapter.Fill(_table)
_con.Close()
For i As Integer = 0 To _table.Rows.Count
Dim AppPath As String = Request.PhysicalApplicationPath
Dim sr As New StreamReader(AppPath & "EmailTemplates/NewReport.txt")
Dim message As New MailMessage()
message.IsBodyHtml = True
message.From = New MailAddress("[email protected]")
message.To.Add(New MailAddress(_table.Rows(i).Item(1)))
'message.CC.Add(New MailAddress("[email protected]"))
message.Subject = "New User registration !"
message.Body = sr.ReadToEnd()
sr.Close()
message.Body = message.Body.Replace("<%ReporterName%>", _table.Rows(i).Item(3))
message.Body = message.Body.Replace("<%ReportURL%>", _table.Rows(i).Item(2))
Dim client As New SmtpClient()
client.Host = "smtp.tricedeals.com"
'smtp.gmail.com
client.Port = 25
client.UseDefaultCredentials = True
client.Credentials = New System.Net.NetworkCredential("[email protected]", "111111")
'smtp.EnableSsl = True
client.Send(message)
i += 1
Next
Catch ex As Exception
Response.Write(ex.Message)
End Try
End Sub
你能重寫你的代碼嗎?是任何方法中的thread.Start()方法?很高興看到所有文件 – igofed 2012-03-17 12:39:17
@igofed我updaed錯誤我得到.. – user1150440 2012-03-17 12:40:55
你爲什麼這樣做的Response.Redirect兩次? – Rich 2012-03-17 12:42:48