2011-06-07 90 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服務器。此 方法不會阻止呼叫 線程並允許呼叫者將 對象傳遞到操作完成時調用的方法 。

這樣,你的服務可以發佈請求發送電子郵件後立即返回,你甚至可以註冊一個回調發送電子郵件操作完成時就知道了。

相關問題