0
我正在處理一個windows服務,該服務以5秒爲間隔將文件導入數據庫系統。當我在本地機器上運行這個服務時,所有東西都正常運行,但是當我將它複製到服務器上並運行它時,計時器事件不會被調用。定時器事件在本地運行時調用,但不在服務器計算機上運行
代碼:
protected override void OnStart(string[] args)
{
timer = new Timer(new TimerCallback(Timer_Tick), null, new TimeSpan(0, 0, 5), new TimeSpan(0, 0, 5));
EventLog.WriteEntry("Timer started.", System.Diagnostics.EventLogEntryType.Information);
}
private void Timer_Tick(object s)
{
EventLog.WriteEntry("Timer ticking.", System.Diagnostics.EventLogEntryType.Information);
}
簡單地說,「計時器啓動」被記錄但沒有在「計時器滴答」在該服務的服務器上運行。
堆棧:
爲什麼無法找到方法?
難道這是一個.net版本問題?
您確定服務有權寫入服務器上的事件日誌嗎? –
這不是你的真實代碼當然是什麼樣子。 System.Timers.Timer是一個非常非常令人討厭的類。微軟創建它是因爲程序員無法弄清楚如何正確使用System.Threading.Timer。它完成「好」定時器類不能做的所有事情。包括捕獲異常而不會造成程序崩潰。他們只是被吞下去,你不知道有什麼地方出了問題。非常討厭。不要使用它。 –
我之前使用過System.Threading,但是我改變了它,看看它是否會有所作爲,因爲我認爲這與事件有關。 –