安裝
管理員打開cmdhtml
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 InstallUtil.exe Path_WinSvc.exe
或者 將 InstallUtil.exe 直接拷貝到生成目錄,運行 InstallUtil WinSvcName.exegit
基礎github
原生實現windows
問題梳理框架
在初始化安裝時發生異常:System.BadImageFormatException: 未能加載文件或程序集「file:///F:\IT\C#\WinSvc\TestWinSvc\Release\WinSvcSqh.exe」或它的某一個依賴項。 試圖加載格式不正確的程序。
解決:注意生成-目標平臺(x64 or x86)以及應用程序-目標框架ide
在「安裝」階段發生異常:「System.Security.SecurityException:未找到源,但未能搜索某些或所有事件日誌。 不可訪問的日誌: Security。」
解決:不經過cmd窗口,改用.bat文件,右鍵以管理員身份運行。學習
安裝服務Install.bat以下,僅供參考:spa
%複製安裝文件至當前目錄% copy C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe %~dp0 %切換到當前bat文件所在目錄% cd /d %~dp0 %執行安裝命令% installutil WinSvcSqh.exe @pause;
最後,在 個人電腦-右鍵屬性-服務 中便可看到新增的windows服務。.net
看下代碼,基本windows服務以下調試
partial class WinSvcSqh : ServiceBase { public WinSvcSqh() { InitializeComponent(); } protected override void OnStart(string[] args) { // do something } protected override void OnStop() { // do something } }
主程序啓動代碼以下
/// 應用程序的主入口點。 public static void Main() { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new WinSvcSqh() }; ServiceBase.Run(ServicesToRun); }
基礎教程參見: http://www.javashuo.com/article/p-bgaydmur-dn.html
具體參見:.Net IOC框架 | sqh
目標:TopShelf+Quartz.net實現基於window服務的定時任務調度
Topshelf
官網 | Topshelf,開源,跨平臺的宿主服務框架(Windows服務開發框架),便捷建立 windows服務。
結合 Quartz,實現任務調度服務。
Quartz .Net
官網 | Quartz,開源,企業級定時計劃任務調度框架,支持 .NET Core。
初步學習:Quartz .net開源job調度框架,相關參見Github上的demo示例:JobScheduleDemoCode