2011-06-07 93 views
1

我有一个WCF 4 REST服务,它执行一些处理,然后立即返回。现在每次调用此服务时都需要异步发送电子邮件。有什么方法可以实现这一点,而无需将电子邮件排队在数据库中,然后使用Windows服务发送电子邮件?从WCF 4 REST服务异步发送电子邮件

+0

你不能简单地使用'ThreadPool.QueueUserWorkItem(YourSendEmailMethod)'? – 2011-06-07 11:31:24

+0

在WCF中使用ThreadPool.QueueUserWorkItem是一个好主意吗?这不会减少到可用于服务REST Web服务的线程数吗? – 2011-06-07 11:36:55

+0

不知道是否会对WCF产生影响,但ThreadPool的想法是在可能的情况下执行这项工作,即释放一个线程时。当然,这会消耗一个线程,但无论你选择哪条路径,总会有一个线程来完成这项工作。 – 2011-06-07 11:39:56

回答

2

我从来没有使用它,但SmtpClient.SendAsync似乎是正确的工具。

从MSDN,重点煤矿:

发送指定的电子邮件给 交付的SMTP服务器。此 方法不会阻止呼叫 线程并允许呼叫者将 对象传递到操作完成时调用的方法 。

这样,你的服务可以发布请求发送电子邮件后立即返回,你甚至可以注册一个回调发送电子邮件操作完成时就知道了。

相关问题