在ASP.NET中建立計劃任務,就我我的而言,用過兩種方式,一種是用SQL Server建立,把寫好的SSIS包導入SQL Server建立的任務中,設置好時間讓它去執行。還有一種就是利用window 服務。接下來我將講述如何用window service 去建立計劃任務,讓它在咱們設定的時間內執行。git
1.新建項目,而後選擇Windows服務。以下:github
2.右鍵空白處,選擇「添加安裝程序」。ide
3.右鍵 serviceProcessInstaller1,選擇屬性,將Account的值改成LocalSystem。目的是爲了保證不管哪一個用戶使用這臺電腦都能啓動服務。工具
4.打開 Service1.cs設計界面,從工具箱裏面拖一個timer控件進來,檢查咱們的程序是否到了執行時間了。spa
5.右鍵timer,選擇屬性,切換到事件,給timer控件綁定一個tick事件.設計
6.添加一個 Scheduler.cs(本身命名) 裏面寫入咱們須要執行的邏輯代碼。對於做業一般會須要設置執行時間,執行的週期,好比星期一到星期五,哪幾天執行,幾點鐘執行等。咱們能夠創建相關表,存儲設置的執行時間和週期,而後在代碼裏去判斷時間是否符合,若是符合就繼續執行。固然在這裏我爲了舉例方便,就只寫一個很簡單的方法。3d
namespace WindowsServiceDemo { class Scheduler { static void Record() { using (System.IO.StreamWriter sw = new System.IO.StreamWriter("E:\\log.txt", true)) { sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ")); } } } }
7.在Service1.cs裏面去調用 code
namespace WindowsServiceDemo { public partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { timer1.Enabled = true; timer1.Start(); timer1_Tick(timer1, null); } protected override void OnStop() { timer1.Stop(); } private void timer1_Tick(object sender, EventArgs e) { Scheduler.Record(); } } }
8.安裝window 服務blog
1)安裝腳本Install.bat事件
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe WindowsServiceDemo.exe Net Start Service1 sc config Service1 start= auto
2)卸載腳本Uninstall.bat
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u WindowsServiceDemo.exe
把這兩個腳本和最後生成的做業放在同一目錄,而後運行Install.bat。這時,咱們打開服務管理界面,能夠看到咱們安裝的服務。
而後再打開E盤,能夠看到record方法執行成功。
代碼下載:https://github.com/Aulanto/window-service-scheduler.git