1
我有一个WCF 4 REST服务,它执行一些处理,然后立即返回。现在每次调用此服务时都需要异步发送电子邮件。有什么方法可以实现这一点,而无需将电子邮件排队在数据库中,然后使用Windows服务发送电子邮件?从WCF 4 REST服务异步发送电子邮件
我有一个WCF 4 REST服务,它执行一些处理,然后立即返回。现在每次调用此服务时都需要异步发送电子邮件。有什么方法可以实现这一点,而无需将电子邮件排队在数据库中,然后使用Windows服务发送电子邮件?从WCF 4 REST服务异步发送电子邮件
我从来没有使用它,但SmtpClient.SendAsync
似乎是正确的工具。
从MSDN,重点煤矿:
发送指定的电子邮件给 交付的SMTP服务器。此 方法不会阻止呼叫 线程并允许呼叫者将 对象传递到操作完成时调用的方法 。
这样,你的服务可以发布请求发送电子邮件后立即返回,你甚至可以注册一个回调发送电子邮件操作完成时就知道了。
你不能简单地使用'ThreadPool.QueueUserWorkItem(YourSendEmailMethod)'? – 2011-06-07 11:31:24
在WCF中使用ThreadPool.QueueUserWorkItem是一个好主意吗?这不会减少到可用于服务REST Web服务的线程数吗? – 2011-06-07 11:36:55
不知道是否会对WCF产生影响,但ThreadPool的想法是在可能的情况下执行这项工作,即释放一个线程时。当然,这会消耗一个线程,但无论你选择哪条路径,总会有一个线程来完成这项工作。 – 2011-06-07 11:39:56