2013-06-03 19 views
2

例如,我在Global.asax中有一些異常處理代碼,我調用SmtpClient的SendAsync()方法來通知我自己有關錯誤。在ASP.Net頁面上使用Async =「true」時可能出現的問題

如果某個頁面的Async屬性爲「false」,那麼我將收不到任何字母。所以,爲了解決這個問題,我必須在ASP.NET WebForms應用程序的每一頁上設置Async =「true」嗎?我可以在這裏得到任何問題嗎?

只有在我的應用程序中發送電子郵件時才需要Async =「true」。

我會感謝任何幫助......

回答

0

請查看完整的信息在; The Dangers of Implementing Recurring Background Tasks In ASP.NET

有三種主要風險,其中之一,我會專注於在這個博客 職位。

1-與請求無關的線程中的未處理異常將取消該進程。即使您通過Application_Error方法設置了處理程序 ,也會發生這種情況。我會盡力解釋爲什麼在 後續博客文章中,但這很容易處理。

2-如果您在Web場中運行您的站點,最終可能會有多個應用程序實例,它們都會嘗試同時運行 的相同任務。處理比第一個項目更具挑戰性, 但仍不太難。一種典型的方法是使用所有服務器(例如數據庫)共有的資源 作爲協調任務的同步機制。

3-您的網站運行的AppDomain可能會因爲多種原因而停止運行,並使用它來取消後臺任務。如果它發生在您的代碼執行過程中,這可能會破壞 數據。

相關問題