2012-11-06 50 views
3

就程序設計而言,我有點兒是初學者。並且看着堆棧溢出,我還沒有找到任何可以回答我的問題的東西。 我創建了一個C#控制檯應用程序,用於將XML文件推送到我不控制的Web服務。它通過創建一個http webrequest來完成。該服務可能會運行在Windows Server 2008上,或贏得7個變量。開發是在VS 2010中完成的。 我的最終目標是每天兩次運行此程序,用戶使用量很少。我被告知服務是實現這一目標的最佳方式。我知道服務不需要用戶輸入,輸出通常是日誌文件。我的控制檯應用程序不需要用戶輸入,但必須具備C.R.U.D的能力。文件。創建它,然後將XMl文件讀入Web請求。如果需要,我應該沒有任何問題,它會在日誌文件中寫入任何錯誤,但是在目前它可以通過電子郵件創建/發送錯誤報告。最佳實踐:使用計劃將應用程序轉換爲服務

我有2個問題:

問題1: 我想這項服務來調用應用程序,每12小時,是不是更可靠/更好的做法是使用服務來確定何時運行應用程序?或者使用windows內置的調度器,或者像。夸克這樣的.net解決方案?我正在尋找可靠性,也沒有什麼用戶參與。一種集合,忘記交易。

問題2: 對於轉換我的程序,建議的最佳做法是什麼? 信息:我以前創建了一個空的Windows服務,我想將我的應用程序放入。 (這是通過教程完成的,該服務包含了服務所需的所有內容,但它不需要做任何事情...... OnStart,OnStop,安裝程序等)。最好的方法是什麼?我應該在服務的OnStart()方法中調用我的應用程序嗎?我們應該將該應用程序添加爲該服務的dll。這並不是說我不認爲我能做到。這只是我在這件事上的搜索似乎指出,從服務開始併爲此添加一些代碼會更好。我的目標是最小化轉換此應用程序所需的代碼。

感謝您的幫助, 克里斯

+0

快速提示:C#是C-Sharp。只是FYI。 – JClaspill

+0

@JClaspill - 我「固定」他蹩腳的幽默嘗試。 –

+0

請不要在標題中加入關鍵字。 –

回答

2

我喜歡由調度運行獨立的程序,因爲它們更容易編寫和測試。

當他們必須一直在運行時,服務會更合適......說出來監控一些事情。

+1

我在這裏同意,在每次運行之間的12小時內,一直運行的服務的開銷只會減損。如果需要每6小時運行一次,這可能是值得的,每5分鐘一次的服務肯定...可能取決於具體情況 – Thymine

+0

我同意這是一個好方法。它回答了我的第一個問題。至於我的第二個問題......如果服務是必要的,最好從服務中調用應用程序。或者將應用程序重寫爲服務會更好嗎? – Chris1804505

2

問題1:個人跑,一天兩次,好像操作

問題2的計劃任務類型:我會形容爲:或多或少放static void Main(string[] args)身入OnStart方法。然後在OnStart中創建一個定時器,它將調用你的類中的觸發器函數。但後來我只是偶然發現了通過編寫windows服務的方式,所以我不能100%確定這個建議......

一個考慮可能是什麼什麼失敗的過程?如果有未處理異常的機會,服務將會死亡,並且要麼需要特殊設置才能重新啓動它,要麼完成錯誤處理以進行編碼。計劃任務將始終在下一個觸發間隔自動重試。

相關問題