Microsoft Windows 服務(即,以前的 NT 服務)使您能夠創建在它們自己的 Windows 會話中可長時間運行的可執行應用程序。這些服務可以在計算機啟動時自動啟動,可以暫停和重新啟動而且不顯示任何用戶界面。這種服務非常適合在服務器上使用,或任何時候,為了不影響在同一台計算機上工作的其他用戶,需要長時間運行功能時使用。還可以在不同於登錄用戶的特定用戶帳戶或默認計算機帳戶的安全上下文中運行服務。
開發
0.創建服務 1.安裝 2.啟動 3.停止 4.卸載 5.監控服務
創建服務:
1. 在c#中創建1個服務很簡單,只要繼承ServiceBase,重寫OnStart和OnStop方法就可以.(最快的是右鍵新建項)
OnStart方法是服務啟動的時候執行的
OnStop方法是服務停止的時候執行的
2. 通常會用System.Timers.Timer做定時任務處理.
安裝:
方式一(手動):
InstallUtil:
1. 打開Visual Studio .NET命令提示
2. 改變路徑到你項目所在的bin\Debug文件夾位置(如果你以Release模式編譯則在bin\Release文件夾)
3. 執行命令“InstallUtil.exe MyWindowsService.exe”注冊這個服務,使它建立一個合適的注冊項。
方式二(代碼):
a.ManagedInstallerClass類:
var filePath = Process.GetCurrentProcess().MainModule.FileName(取當前進程文件路徑)
var cmds = new []{filePath};
ManagedInstallerClass.InstallHelper(cmds);
b.(sc命令是用來與服務控制管理器和服務進行通信的命令行程序)
var cmd = "create myserver binpath= \""+程序絕對路徑名+"\" displayName= 服務名 start= auto"
Process.Start("sc", cmd);
啟動:
方式一(代碼):
a.Process.Start("sc", "start 服務名");
方式二(手動):
a.命令提示符中:net start 服務名
b.運行"services.msc",找到服務名,啟動服務
停止:
方式一(代碼):
a.Process.Start("sc", "stop 服務名");
方式二(手動):
a.命令提示符中:net stop 服務名
b.運行"services.msc",找到服務名,停止服務
卸載:
方式一(手動):
1. 打開Visual Studio .NET命令提示
2. 改變路徑到你項目所在的bin\Debug文件夾位置(如果你以Release模式編譯則在bin\Release文件夾)
3. 執行命令“InstallUtil.exe /u MyWindowsService.exe”注冊這個服務,使它建立一個合適的注冊項。
方式二(代碼):
Process.Start("sc", "delete 服務名");
監控:
使用ServiceController來獲取服務狀態或對服務進行控制。
這個類可以獲取服務的狀態,屬性,對服務也可以進行啟動,停止操作
代碼下載