2014-04-09 498 views
0

我有一個愚蠢的問題,因爲我忘了合適的詞來解釋:運行Web服務作爲Windows服務

如何建立運行在服務器不停的Web服務(ASP.NET),多像做Windows服務一樣?它是一個後臺工作者,還是我應該使用一些計時器?

回答

1

雖然它沒有完整意義上有一個Web服務做到自動連續東西W/O被調用,這樣做:

  1. 主持人於WCF服務。
  2. 當服務主機啓動時,啓動一個基於計時器的事件並在任務中完成工作。
  3. 有適當的錯誤處理。
  4. 這可確保您的Web服務也可用於服務客戶端請求。

如果#4無效,則重新考慮web服務並只需要一個windows服務。

+0

我在想這個。所以可以在WCF中使用定時器嗎?我正在考慮將它部署到AppHarbor服務器中。希望他們沒有這樣的限制.. – Jalle

+0

是的,這很好..另一種方法是有一個DLL,它承擔了服務和Windows服務使用的繁重工作。 Windows服務託管服務(並且該服務不執行任何計時器任務),並且Windows服務還利用利用該DLL的任務來旋轉時間事件。這種方式存在一些分離和關注點的轉移 –

1

Web服務也運行不停。兩者之間的主要區別在於它們被訪問的方式。 Windows服務不需要任何用戶干預。 Web服務運行不間斷,並通過一些協議通過請求調用,主要是tcp/http和其他協議。

參考this