我正在尝试通过网站发送邮件;邮件已成功发送,但仍被抛出:
线程正在中止
这是C#代码:
try
{
MailAddress mailFrom = new MailAddress("info@mydomain.org");
MailAddress mailTo = new MailAddress("mygmailid@gmail.com");
MailMessage MainMessage = new MailMessage(mailFrom, mailTo);
MainMessage.Subject = "BloggersFolder: Answer received";
MainMessage.CC.Add("anothergmailid@gmail.com");
MainMessage.Priority = MailPriority.High;
MainMessage.Body = "Hello - this is body message";
SmtpClient smtpclient = new SmtpClient("relay-hosting.secureserver.net", 25);
smtpclient.UseDefaultCredentials = false;
smtpclient.Credentials = new NetworkCredential("info@mydomain.org", "mypassword");
smtpclient.Send(MainMessage);
Response.Redirect("~/thank-you.aspx?page=answer");
}
catch (Exception ex)
{
string strg = ex.Message.ToString();
Response.Redirect("~/thank-you.aspx?page="+ strg);
ex = null;
}
我已经配置了HTTP超时(在其他地方找到了解决方案(,仍然抛出了错误。
web.config
:
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<httpRuntime executionTimeout = "60"/>
</system.web>
您需要将Response.Redirect
更改为中止线程 - 使用以下内容:
Response.Redirect("~/thank-you.aspx?page=answer", false);
使用第二个参数false
,不会中止运行线程,并且不会发生ThreadAbortException
...