如何編寫 Windows 服務程式

來源:互聯網
上載者:User
大致的步驟如下(以C#.Net 為例): 
1、建立 >> 項目 >> Visual C# >> Windows >> Windows服務; 
2、一般服務程式中我們都需要使用到 Timer 組件,建議不要使用 System.Windows.Forms.Timer 組件,因為它可能會產生不可預料的“罷工”問題;應使用 System.Timer 組件;可以在  Service 的 OnStart 過程中編寫如下: 
protected override void OnStart(string[] args) 

    Timer timer = new Timer(1000); 
    timer.Elapsed += new ElapsedEventHandler(DoAnything); //使用Elapsed事件,其中DoAnything就是你需要處理的事情 
    timer.AutoReset = true; 
    timer.Enabled = true; 

private void DoAnything(object sender, System.Timers.ElapsedEventArgs e) 

    .... 你需要做的事情寫這裡 

3、寫完之後,最終是需要將它安裝到 Windows 服務中,因此需要在現有工程中 添加 >> 建立項 >> 安裝程式類,取名叫:ProjectInstaller.cs;在類中還需要兩個控制項支援,分別是:serviceInstaller 與 serviceProcessInstaller,這兩個組件在 .net 2.0 包中已經包含,只是預設不顯示在工具箱中,可以從工具箱中增加“選擇項”,將它們找出來。其中serviceInstaller可以設定服務的顯示名稱、說明、運行方式(建議設定成自動:Automatic)等資訊;serviceProcessInstaller用於設定服務啟動並執行賬戶身份,推薦設定成:LocalSystem(本地賬戶); 

一切就緒後,Ctrl + Alt +B 編譯器,服務程式基本上就到此完成!此時服務程式只是編譯好了,並未最終安裝到WINDOWS 服務中,還需要寫一段批處理用於註冊該服務程式,以下提供批次檔代碼。 

installService.bat(註冊與啟動) 
================== 
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe 服務程式絕對路徑 
net start 服務名 

unInstallService.bat(卸載與停止) 
================== 
net stop 服務名 
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe -u 服務程式絕對路徑 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.