我經常需要從使用SQL Server的asp.net站點向第三方會計系統發送數據和從第三方會計系統發送數據。數據導入通常需要一段時間,並且我試圖找到處理長時間運行任務的最佳方法,並且能夠在用戶想要查看其執行情況時更新用戶。我的問題是以下哪些方法的優點和缺點,以及您有什麼建議,爲什麼?ASP.NET長時間運行的任務想法
舊風格的ASP的Response.Write:實際上我用這個頗有幾分此刻是我的方法去,因爲它的快速。我並沒有真正遇到過很多問題。我認爲應用程序池回收會成爲一個問題,但我不認爲它會在請求中回收。
使用像這裏提出http://encosia.com/easy-incremental-status-updates-for-long-requests/一個IFrame:,除了這上面的方法類似的是asynchronous.I'm不知道這是否會允許一個asp.net重啓
一個單獨的Windows應用程序,從該網站調用Web服務:我已經使用了此方法,但設置時間稍長,並且在應用程序池回收時將停止運行。我可能不會使用這種方法
Windows工作流:沒有用它,但似乎像(特別是小數據更新)將是矯枉過正
Windows服務:同上。似乎它會太困難
Ajax,單獨的線程和計時器輪詢緩存的結果:我已經使用這個很好,但如果應用程序池回收,因爲它在一個單獨的線程,ASP .net不知道。
對於WAWS,您可以使用Azure WebJobs。看到我的教程http://www.asp.net/aspnet/overview/developing-apps-with-windows-azure/getting-started-with-windows-azure-webjobs。在Azure上,您始終可以選擇工作角色,Azure WebJobs提供了一個沒有輔助角色的WAWS替代方案。 – RickAndMSFT
Windows Azure網站門戶中的新WebJobs頁面可以輕鬆創建和管理按需,計劃或持續運行的任務。更多信息請參見[http://www.windowsazure.com/en-us/documentation/articles/web-sites-create-web-jobs/](http://www.windowsazure.com/en-us/documentation/文章/ web站點創建的Web-工作/)。 – timamm