2011-03-13 37 views

回答

1

我不會那樣做。該線程將隨應用程序池而死。創建一個使用ThreadTimer來檢查數據庫的Windows服務。

+1

「server」=>「service」,我假設。我會建議創建一個控制檯應用程序,並將其作爲Windows中的計劃任務運行。我一直這樣做,很少使用服務。開發和部署沒有服務要容易得多:-) – 2011-03-13 10:25:03

+0

我需要我的web服務來檢查db的每隔5分鐘,然後通過TCP將數據發送到c#客戶端,並且只能從此web服務訪問數據庫 – ToDayIsNow 2011-03-13 10:26:32

+0

@ToDayIsNow問題似乎並不能反映你真正想問的問題。請更新您的問題。 – 2011-03-13 10:33:05

1

你爲什麼要這麼做?

如果您的服務是每次呼叫(即不是單身),則涉及服務請求的所有資源應該在呼叫之後立即釋放。如果您產生了一個線程,請求將保持活動直到線程完成。

另外,定期檢查數據庫中的數據在Web服務調用中沒有任何意義,它應該在非常短的時間內完成,否則會終止可伸縮性。

您可能指的是一個單例Web服務,即單服務器對象服務請求。在這種情況下,您需要首先創建單例對象 - 很可能在自動啓動的Windows服務中。

您的數據庫輪詢很可能用於緩存某些常用值,以便服務請求不需要訪問數據庫本身。在這種情況下,你的服務實際上是一箇中間層。除非您知道數據庫中的數據非常頻繁地更改,否則請考慮將數據庫輪詢替換爲調用Web服務的數據庫中的觸發器以更新新數據。

相關問題