C# 提交时发送邮件会减慢表单的速度
所以我有一个典型的web表单,我注意到在到达下一个屏幕之前提交表单时有很长的延迟。在玩过之后,我发现是邮件消息部分造成了延迟。我想有人看看这一点,并给我一些建议,我可以如何改进这一点,以加快我的提交 代码隐藏C# 提交时发送邮件会减慢表单的速度,c#,asp.net,webforms,smtpclient,C#,Asp.net,Webforms,Smtpclient,所以我有一个典型的web表单,我注意到在到达下一个屏幕之前提交表单时有很长的延迟。在玩过之后,我发现是邮件消息部分造成了延迟。我想有人看看这一点,并给我一些建议,我可以如何改进这一点,以加快我的提交 代码隐藏 protected void Submit_Click(object sender, EventArgs e) { blah blah blah... StringBuilder sb = new StringBuilder();
protected void Submit_Click(object sender, EventArgs e)
{
blah blah blah...
StringBuilder sb = new StringBuilder();
sb.Append("<html><body>");
sb.Append("Success!!");
sb.Append("</body></html>");
MailMessage msg = new MailMessage();
SmtpClient server = new SmtpClient("");
msg.To.Add(toaddress);
msg.From = new MailAddress(fromaddress, fromname);
msg.Subject = "New Submission";
msg.Body = sb.ToString();
msg.IsBodyHtml = true;
server.Send(msg);
messageLabel.Text = "Your submission has been sent!";
messageLabel.Visible = true;
}
protectedvoid提交\u单击(对象发送者,事件参数e)
{
废话废话。。。
StringBuilder sb=新的StringBuilder();
某人加上(“”);
某人追加(“成功!!”);
某人加上(“”);
MailMessage msg=新的MailMessage();
SmtpClient服务器=新的SmtpClient(“”);
msg.To.Add(toaddress);
msg.From=新邮件地址(fromaddress,fromname);
msg.Subject=“新提交”;
msg.Body=sb.ToString();
msg.IsBodyHtml=true;
发送(msg);
messageLabel.Text=“您的提交已发送!”;
messageLabel.Visible=true;
}
有什么办法可以加快速度吗?我最大的问题是人们不认为他们点击了提交,他们又点击了。我知道在他们点击Submit按钮后,我可以灰显Submit按钮,但我希望有一些以前没有意识到的速度改进。在单独的线程上执行邮件提交,同时将结果呈现给用户。如果邮件提交失败,请将电子邮件发送到本地磁盘,以便在进程终止时查看
将对邮件发送结果的引用存储在应用程序状态或某个静态字段中,以便用户稍后可以查看邮件发送是否成功。在单独的线程上执行邮件提交,同时将结果呈现给用户。如果邮件提交失败,请将电子邮件发送到本地磁盘,以便在进程终止时查看
将对邮件发送结果的引用存储在应用程序状态或某个静态字段中,以便用户稍后可以查看邮件发送是否成功。在单独的线程上执行邮件提交,同时将结果呈现给用户。如果邮件提交失败,请将电子邮件发送到本地磁盘,以便在进程终止时查看
将对邮件发送结果的引用存储在应用程序状态或某个静态字段中,以便用户稍后可以查看邮件发送是否成功。在单独的线程上执行邮件提交,同时将结果呈现给用户。如果邮件提交失败,请将电子邮件发送到本地磁盘,以便在进程终止时查看
将对消息发送结果的引用存储在应用程序状态或某个静态字段中,以便用户稍后可以查看消息发送是否成功。我经常参与具有大规模邮件发送要求的部署。你说得对-电子邮件确实会大大降低应用程序的速度,这就是为什么我们从不直接从应用程序本身发送电子邮件 我们也很少在大型应用程序中使用多线程——只是没有足够的线程 我们始终选择两个选项中的一个,这两个选项都具有良好的扩展性:
希望这能有所帮助。我经常参与具有大规模邮件发送需求的部署。你说得对-电子邮件确实会大大降低应用程序的速度,这就是为什么我们从不直接从应用程序本身发送电子邮件 我们也很少在大型应用程序中使用多线程——只是没有足够的线程 我们始终选择两个选项中的一个,这两个选项都具有良好的扩展性:
希望这能有所帮助。我经常参与具有大规模邮件发送需求的部署。你说得对-电子邮件确实会大大降低应用程序的速度,这就是为什么我们从不直接从应用程序本身发送电子邮件 我们也很少在大型应用程序中使用多线程——只是没有足够的线程