我想知道從ASP.NET網頁按需啓動處理長時間運行進程的最佳方式。處理ASP.NET中長時間運行的進程
的過程可以包括的各個步驟(如文件上傳到服務器,在上面運行SSIS包,執行一些存儲過程等),有時這個過程可能需要長達幾個小時才能完成。
如果我使用WCF服務去異步執行,那麼如果用戶關閉,而進程正在運行,過程如何成功或失敗的結果應該顯示給用戶瀏覽器中會發生什麼?爲了解決這個問題,我選擇了單向的WCF服務調用,但問題在於我需要創建一個進程表並存儲結果(如果在任何步驟中失敗並且哪些步驟已成功完成,則存儲錯誤消息)該表是額外的開銷,因爲有許多這樣的進程具有用戶可以從網頁調用的各種步驟,並且用戶需要知道進度(在最簡單的情況下,狀態可以是「進程xyz運行」)一旦完成,輸出需要顯示給用戶(例如通過運行存儲過程)。
什麼是設計這個解決方案的最佳方式是什麼?
感謝所有的答覆。我需要構建的東西更像是一個小型工作執行管理工具,由Web界面觸發,這不是很常見。我可能會創建一個通用的進程表並將日誌消息存儲爲xml。日誌消息主要表示執行進度。 – RKP 2010-08-24 11:28:35