C#smtpclient.send的开发速度很慢,但生产速度很快
本文关键字:速度 很快 send 开发 C#smtpclient | 更新日期: 2023-09-27 18:19:47
我们有一些C#代码,当订单下达或密码更改时,这些代码会向用户发送电子邮件。这些代码在生产服务器上运行得很快,但在开发时在本地桌面上运行时非常慢。生产服务器将在5秒内发送一封电子邮件,但开发机器需要5分钟。开发机器和生产服务器使用相同的smtp服务器,该服务器是我们网络的本地服务器。IIS或Exchange中是否有任何设置可能会在一个环境中导致类似的延迟,但在另一个类似环境中则不会?台式机运行的是windows 7,Web服务器运行的是windows Web服务器2008,Exchange服务器2010运行的是Microsoft SBS 2011。
您的开发机器上安装了Symantec(或其他防病毒/电子邮件保护)软件吗?我们也遇到过类似的问题,发送电子邮件时,传出的SMTP流量被阻塞或终止。生产服务器通常已经为该流量内置了异常,因此没有延迟。
我在通过一些smtp客户端发送电子邮件时也遇到过类似的问题。尽管这可能不是您正在寻找的确切解决方案,但您可以将sendmail方法分段为"非阻塞任务"(使用TPL),并让底层线程负责执行。同时,代码的其余部分可以照常执行。通过这种方式,。即使发送邮件需要几秒钟,代码的其他部分也不必等待。