網上有很多關於window服務的講解,本篇文章將以例項為主,解讀如何實現window服務。
環境:vs 2008
1,新建window服務
【注:刪除program.cs,因為在service1.cs中,我們會定義程式的入口,就不再需要該檔案】
2,專案會自動生成service1.cs 檔案,該類繼承自servicebase類,我這裡把檔案service1.designer.cs檔案內容,複製到service1.cs中,並刪除designer檔案。在該檔案中,重寫了方法onstart,onstop等方法。
**如下:
usingsystem;
usingsystem.collections.generic;
usingsystem.componentmodel;
usingsystem.data;
usingsystem.diagnostics;
usingsystem.linq;
usingsystem.serviceprocess;
usingsystem.text;
usingsystem.windows.forms;
usingsystem.io;
usingsystem.net.mail;
namespacesendemailservice
//////
程序入口處
///static void main();
servicebase
.run(myservice); }
///
///開始
//////protected override voidonstart(string args)
filestream
fs = new
filestream
(path,
filemode
fileaccess
.write);
streamwriter
sw = new
streamwriter
(fs);
sw.writeline("theservice is starting on"
+ datetime
.now.toshortdatestring());
sw.flush();
sw.close();
fs.close();
time = new system.timers.timer
(3000);
time.enabled = true;
time.elapsed += this.timeout;
time.start();
}} private void timeout(object sender, eventargse)
///
///結束
///protected override void onstop()
///
///暫停服務
///protected override void onpause()
//////
恢復服務
///protected override void oncontinue()
protected override void dispose(booldisposing)
base.dispose(disposing);
}private void initializecomponent()}}
3,新建安裝檔案seinstall.cs 繼承自install類
4,同service1.cs一樣,刪除designer.cs檔案
**如下:
using system;
using system.collections;
using system.collections.generic;
using system.componentmodel;
using system.configuration.install;
using system.linq;
namespace sendemailservice
//////
清理所有正在使用的資源。
//////如果應釋放託管資源,為 true;否則為 false。
protectedoverride void dispose(bool disposing)
base.dispose(disposing);}
#region 元件設計器生成的**
///
///設計器支援所需的方法 - 不要
///使用**編輯器修改此方法的內容。
///privatevoid initializecomponent());}
#endregion}}
5,編譯成功之後,我們要將生成的exe檔案,安裝到【服務】
開啟cmd-右擊【管理員身份執行】-
將路徑定位到上圖目錄下:
定位方式:1, cd.. 2, cd .. 3,cd c:\windows\microsoft.net\framework\v2.0.50727
輸入如下命令:installutil path[注:path為exe檔案所在目錄]
如installutile:\***.exe
dos介面會有提示,如果成功,則在【服務】列表會有提示
6,測試設定的郵箱是否接收到郵件,即可判定是否成功! 7,
解除安裝服務:installutil /u path
【注:如果解除安裝不成功,可以進入登錄檔刪除對應的服務即可。】
在services下面找到對應的服務,刪除即可。
【注:如果服務不能啟動,說明程式有問題。可以將編寫的程式,先放到winform程式中測試下】
window自動任務實現資料庫定時備份
原理 利用window定時任務定時cmd載入mytask.bat檔案,bat執行php.exe程式編譯執行mytask.php檔案 從而實現了資料庫的備份 mytask.bat 內容 d phpstudy php53 php.exe d www mytask.php mytask.php 內容 fi...
spring boot 定時任務實現
scheduled 使用 scheduled 非常容易,直接建立乙個 spring boot 專案,並且新增 web 依賴 spring boot starter web,專案建立成功後,新增 enablescheduling 註解,開啟定時任務 enablescheduling 開啟定時任務 pu...
Spring定時任務實現
一 spring 定時任務 component enablescheduling 可以在啟動類上註解也可以在當前檔案 public class testschedule scheduled fixedrate 1000 10 public void runsecend scheduled fixed...