2010-07-26 60 views
0

我有一個數據加載應用程序必須每天不定期執行多次。我打算編寫一個服務來啓動下載並將數據導入數據庫服務器。通過web服務使用標準服務還是有優勢的,反之亦然?何時通過Windows服務使用Web服務?

+0

你打算如何觸發執行?手動或在某些條件適用的情況下? – Goblin 2010-07-26 19:58:09

+0

有點奇怪的問題。 Webservice用於使服務公開訪問。在你的情況下,你似乎需要考慮在Windows服務或調度程序執行的作業之間。 – 2010-07-26 20:00:59

+2

Web服務和Windows服務是兩個完全不同的事物,彼此之間沒有任何關係。這就像詢問什麼時候使用自行車或捲心菜更好。 – 2010-07-26 20:01:55

回答

7

我覺得你錯過了這裏的觀點。

網絡服務通常用於通信或遠程執行的形式。您可以在Web服務上調用遠程函數,以調整正在運行的機器的行爲或從中檢索數據。

Windows服務是在不需要任何「登錄用戶」的機器上運行的後臺進程。他們可以在用戶登錄屏幕時執行任務並執行操作,或者執行高級操作。您可以與服務對話以調整其行爲或檢索信息,但它的一般用途與web服務不同。

這裏最大的區別在於,必須調用Web服務,它們不會自行運行。

對於您的應用程序,我建議使用Windows(標準)服務,因爲您可以讓它每天執行一次代碼。如果你有其他東西來自動調用Web服務,並且你需要服務器的響應,詳細說明它的執行結果(成功/失敗/警告/等等),我纔會使用Web服務。

1

如果「不規則間隔」確實意味着應用程序被另一個應用程序調用,那麼我會使用Web服務。

如果該行動已安排,我會使用Windows服務。

如果您正在使用SQL Server(計劃與否),我還會考慮SQL Server Integration Services。

1

您還可以考慮編寫由Windows計劃任務觸發的正常(Windows或控制檯)應用程序。你所描述的不一定聽起來像需要服務的東西。

1

聽起來像一個很好的使用Windows服務給我。關閉我的頭頂,我會使用Windows服務,如果: 1.工作按照定期(定期或不定期)在後臺執行; 2.不需要交互 - 工作只是在後臺完成,並基於輪詢或某種其他類型的觸發器(消息在隊列中丟棄,數據庫值觸發器,計劃的時間段等)開始工作。 3.需要被監控(隨着記錄開始/停止),你可以利用WMI,perfmon和事件日誌而不費力氣。

Web服務更適合於交互式任務(例如,如果您希望根據收到的請求啓動下載)。

聽起來像一個Windows服務是你應該採取的方法。

希望這會有所幫助。祝你好運!