-1
我有一個Windows服務,做以下的事情:超時異常離開Windows服務反應遲鈍
- 連接到數據源的OnStart。
- 調用一種方法,每5秒從數據源獲取數據並將其保存到數據庫。
- 調用第三方Web服務以每5秒處理一次數據。
的設置:
兩個點2和3被稱爲在同一定時器的經過。有時,第三方Web服務會超時。在這種情況下,我們捕獲異常,將其記錄在我們的數據庫中,然後不要再拋出它。我們的想法是,當定時器再次過期時,我們想重新調用Web服務,因爲改進第三方服務不在我們的控制範圍內,並且在任何情況下都不會經常發生。下面是過程數據()的一些僞代碼:
private bool ProcessData()
{
bool hasBeenProcessed = false;
try
{
// Call web service
// If successful
hasBeenProcessed = true;
}
catch(Exception ex)
{
// Log exception
}
return hasBeenProcessed;
}
問題:
我們的windows服務完全停止工作,即使異常被處理,而不是重新拋出。忘記第3步,我們無法看到數據庫中的任何數據應該作爲第2步的一部分來完成。理想情況下,我們不希望數據收集因爲數據處理中的問題而受到影響。該服務本身在服務管理器中顯示爲正在運行。儘管從服務管理器停止服務不起作用。
問:
雖然我們現在分開這兩件事情分成兩個不同的服務,我試圖找出什麼地方出了錯在目前的邏輯是什麼?爲什麼Windows服務變得無法響應?
其中是正在處理的異常可以廣告或顯示您正在執行的日誌邏輯..?基於你已經顯示你的方法調用的代碼什麼也不做 – MethodMan 2014-09-22 21:19:32