有誰知道SmtpClientWrapper中的MvcMailer SendAsync方法是否阻止ASP.NET MVC請求?看着MvcMailer維基和代碼,我會說是的。MvcMailer SendAsync是否阻止ASP.NET MVC請求?
所以我仍然需要使用像WebBackgrounder這樣的東西作爲一個安全和真正的異步郵件發送在我的MVC應用程序中發送here?
我正在尋找一個明確的答案謝謝。
有誰知道SmtpClientWrapper中的MvcMailer SendAsync方法是否阻止ASP.NET MVC請求?看着MvcMailer維基和代碼,我會說是的。MvcMailer SendAsync是否阻止ASP.NET MVC請求?
所以我仍然需要使用像WebBackgrounder這樣的東西作爲一個安全和真正的異步郵件發送在我的MVC應用程序中發送here?
我正在尋找一個明確的答案謝謝。
下載MvcMailer並運行我自己的測試後,我可以確認SendAsync確實會阻止ASP.NET請求,直到完成。
「SendAsync()調用SynchronizationContext.OperationStarted(),這是一個提示,不要將其HttpContext實例的(甚至正在進行的請求),直到異步操作完成。」
由於MvcMailer只是從System.Net.Mail包裝SendAsync,它受到相同的限制。
異步發送電子郵件的正確方法是使用WebBackgrounder之類的東西,因爲它完全是後臺操作(因此,如果使用SendAsync或Send,則無關緊要)。
爲了簡單起見,您還可以使用Ajax發送電子郵件,但這有一個客戶端而不是服務器操作的缺點。
這將是奇怪的,如果異步調用將阻止請求線程.. – 2012-04-20 16:35:09
我正在專門討論阻止一個ASP.NET請求,討論stackoverflow.com/questions/6935427/...。鑑於MvcMailer是一個MVC應用程序,我希望該項目解決了這個問題。看看代碼,我會說它沒有。 – DalSoft 2012-04-20 17:02:23