Threaded Windows Service - SmtpClient Issues
我们正在编写一个使用 topshelf / windsor / masstransit 的线程服务来从 MSMQ 中提取消息,然后发送一封带有 PDF 附件的电子邮件。
SmtpClient.Send() 方法时不时会抛出此错误消息:
An asynchronous call is already in progress. It must be completed or canceled before you can call this method.
我在 Windsor 中将 SmtpClient 设置为 .LifeStyle.Transient,所以我的理解是每个线程都应该有自己的实例?
知道我可以如何解决这个问题,而不是锁定那部分代码。这会破坏线程的目的。
提前致谢
我会尝试确认您确实获得了一个新的 SmtpClient 实例 - 确保您没有将其粘贴在静态字段中或以其他方式以相同的引用结束。您可以尝试在每次发送电子邮件时将结果从
如果做不到这一点,我唯一的建议是尝试将其简化为一个非常简单的示例 - 如果您没有发现这样做的问题,您可以在此处发布代码,有人可能会提供帮助。