2012-07-16 59 views
0

我最近開始爲一家新公司工作,現在正在開發一個Web應用程序(asp.net)。這個應用程序使用Global.asax來啓動一個定時器,它將以給定的時間間隔做各種事情(發送電子郵件,設置數據庫中的各種值等)Windows服務或Global.asax什麼更合適?

他們現在想要的是有一些東西會叫第三第三方Web服務檢索一些數據並在我們的最後更新數據庫。我通常會在windows服務中完成上述所有操作。不過他們似乎很高興在global.asax中有這種類型的東西。我打算創建一個新項目並開發這個新的功能作爲一個Windows服務,但我應該打擾嗎?也許我應該只是將此添加到global.asax?

我的問題是上述場景最適合/最好的方法是什麼?

回答

2

使用外部服務是最佳選擇。

  1. 在不與請求將取下來的進程相關聯的線程未處理的異常。即使您通過Application_Error方法設置了處理程序,也會發生這種情況。

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

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

欲瞭解更多信息:

相關問題