2012-02-21 76 views
3

客戶端向我請求了一個在後端執行大量處理的Web應用程序(從文件讀取,寫入Web服務)。我的問題是,由於這個「過程」(當用戶點擊'開始')可能需要幾個小時,我該如何使它在用戶關閉網頁後繼續處理?請讓我知道,如果這沒有任何意義,我可以提供更多信息。任何幫助將不勝感激,謝謝!從Web應用程序請求中創建單獨的進程

+0

@DmitryBoyko [編輯問題](http://stackoverflow.com/suggested-edits/206335)只是爲了大膽的某些部分?真? – Basic 2012-02-21 17:23:07

回答

1

您必須爲其創建MS Windows服務。

您已經爲該服務提供了一些數據庫表,客戶端將使用您的網站功能。

+2

請注意,您通常無法在共享主機環境中運行Windows服務。您需要完全訪問Web服務器才能安裝和管理Web服務。如果您沒有此類訪問權限,則可以在您有權訪問的單獨機器上運行Windows服務。在這種情況下,Web服務器必須以某種方式向另一臺機器發送請求(例如,通過Web服務調用)。在您的網絡流量較大的環境中,無論如何將Windows服務分離到單獨的計算機可能是明智的。 – 2012-02-21 17:19:29

0

最好的解決方案將是在Windows服務中完成工作,並使用您的Web應用程序來觸發處理。

+0

是否可以在同一個解決方案中擁有2​​個Windows服務? – 2012-02-21 17:18:39

+1

@IsaacLevin - 是的。解決方案中可以有許多不同的服務。您也可以在一臺機器上安裝多個服務。 – Oded 2012-02-21 17:19:26

+0

@Oded所以我會做這樣的例子 http://www.fredmastro.com/post/Call-your-Web-Service-from-your-Web-Application.aspx – 2012-02-21 17:31:15

0

這基本上是一個「批量工作」的要求,這就是我建議你接近它的方法。

客戶端將使用網頁,而不是執行的工作,而是管理正在執行工作的批處理作業列表。安排它們,啓動或停止它們,查看它們的狀態和當前輸出等等。 (是的,就像他們這樣做是在1970年的,但沒有「// FOOBAR JOB(123456)」 ......感謝上帝。

用戶到該網頁,並輸入請求。背 - 主機上的服務進程(批處理作業管理器...)現在可以在一臺計算機上啓動作業;也許一次可以執行多個作業。用戶可以同時註銷網站並執行任何他喜歡的操作然後,他可以隨時回來,回到任何可能的工作監控網頁,看看事情進展如何。停止工作,暫停/恢復,你有什麼,

還有批量作業監視工具的批次已經存在,適用於各種環境,包括免費和商業。所以,它不像你必須構建所有這些東西;你只需要確定什麼現貨包裝最適合你和你的客戶。

+0

你能舉個例子說明如何做到這一點?似乎它可能是我需要採取的路線。 – 2012-02-21 17:38:52