有没有人有这个问题? 如果是这样,你如何避开它? 我们正在零星的超时问题,这是越来越受到指责。
同样的问题在这里也报道说:
http://www.vbforums.com/showthread.php?p=3609268
有没有人有这个问题? 如果是这样,你如何避开它? 我们正在零星的超时问题,这是越来越受到指责。
同样的问题在这里也报道说:
http://www.vbforums.com/showthread.php?p=3609268
我不知道是否有一个更简单的解决此问题的具体方式,但其中一个方案是下载的Mono的SmtpClient源和(如果需要修改)使用。 他们的版本绝对不会发送QUIT命令。
我工作在一个项目上要求我们发送大量的电子邮件。 NET的执行是效率太低,不提供任何方法来发送多个不同的邮件在同一个SMTP会话。 我们倒在使用Mono的实施和修改它允许当QUIT命令被送到我们手动控制和连接关闭。 共有25个相关的单班,我们必须融入我们的项目为这个(主要是复制粘贴+和编辑命名空间)是。
这似乎有点极端,但如果没有办法来解决这个问题,它可能是你最好的第三方替代:它是免费的,它不是工作的一个伟大的交易,它的API是几乎等同于天然SmtpClient的。
在机器上运行有IIS应用程序? 如果是这样,你可以利用内置的SMTP服务设置您的SMTP客户端这样的交付方式:
var client = new SmtpClient
{
DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis
};
我在几个应用程序中使用此,它是非常可靠的。
它在.NET 4解决他们实施IDispose这将QUIT命令和释放资源。
这是MSDN上的相关文件的副本:
该SmtpClient类没有定案方法,所以应用程序必须调用Dispose明确地释放资源。 通过在主机属性中指定的SMTP服务器的所有已建立的连接Dispose方法迭代,并发送一个退出消息,然后结束正常的TCP连接。 Dispose方法还释放由插座占用的非托管资源,还可以被管理的资源的处置。
调用Dispose当您使用SmtpClient完成。 Dispose方法离开处于不可用状态的SmtpClient。 调用Dispose后,必须释放所有引用到SmtpClient所以垃圾回收器才能收回该SmtpClient占用的内存。
貌似我要找到一个第三方产品来解决这个问题。 单声道解决方案听起来有趣,但我宁愿花几块钱,并得到一个商业解决方案。