2013-02-21 69 views
3

我已經嘗試了很多變化來快速返回響應給用戶,並在後臺發送電子郵件,但失敗了。這裏是一個樣品,我都試過了,如何在不延遲ASP.NET響應的情況下發送電子郵件?

ThreadPool.QueueUserWorkItem(callback => 
       // It is important to put this line inside try catch otherwise it might crash the process 
       client.SendAsync(message, message) 
       ); 

當我穿上client.SendAsync一個破發點,沒有回覆將被髮送到用戶,直到這條線執行。那麼在後臺發送郵件而無需等待回覆的正確方法是什麼?

更新:我想我得到了這個問題,實際上它是VS調試器,停止asp.net線程(掛起),直到你通過。以上代碼適用於我的場景。

回答

1

您可以將電子郵件放入消息隊列中,並在從該消息隊列讀取的單獨服務中處理其實際發送。

1

根據電子郵件的數量和大小,您也可以考慮將它們寫入拾取文件夾。您可以使用本地IIS SMTP服務器通過智能主機中繼郵件。實際上,這對我們來說非常有效。

相關問題