?? 下面我告訴你,只需三個文件,即可完成一個系統服務。
????? 1.新建一個類,命名為TestService,并繼承于
System.ServiceProcess.ServiceBase。重啟其中的OnStart方法和OnStop方法
??????
?2 ? ????{
?3 ? ???????? protected ? override ? void ?OnStart( string []?args)
?4 ? ????????{
?5 ? ????????????NLogHelper.Trace( " OnStart " );
?6 ? ????????}
?7 ?
?8 ? ???????? protected ? override ? void ?OnStop()
?9 ? ????????{
10 ? ????????????NLogHelper.Trace( " OnStop " );
11 ? ????????}
12 ? ????}
???? 2.新建一個類,命名為TestServiceInstaller,并繼承于System.Configuration.Install
?????
?2 ? ???? public ? class ?TestServiceInstaller?:?Installer
?3 ? ????{
?4 ? ???????? /// ? <summary>
?5 ? ???????? /// ?安裝一個進程
?6 ? ???????? /// ? </summary>
?7 ? ???????? private ?ServiceInstaller?serviceInstaller;
?8 ? ???????? /// ? <summary>
?9 ? ???????? /// ?安裝一個服務
10 ? ???????? /// ? </summary>
11 ? ???????? private ?ServiceProcessInstaller?processInstaller;
12 ?
13 ? ???????? /// ? <summary>
14 ? ???????? /// ?Initializes?a?new?instance?of?the? <see?cref="TestServiceInstaller"/> ?class.
15 ? ???????? /// ? </summary>
16 ? ???????? public ?TestServiceInstaller()
17 ? ????????{
18 ? ???????????? // 致命用戶類型
19 ? ????????????processInstaller? = ? new ?ServiceProcessInstaller?{Account? = ?ServiceAccount.LocalSystem};
20 ? ????????????serviceInstaller? = ? new ?ServiceInstaller
21 ? ???????????????????????????????????{
22 ? ???????????????????????????????????????StartType? = ?ServiceStartMode.Manual, // 服務的啟動類型:手動
23 ? ???????????????????????????????????????ServiceName? = ? " TestService " , // 服務的名稱
24 ? ???????????????????????????????????????Description? = ? " 這是TestService的描述 " ,
25 ? ???????????????????????????????????????DisplayName? = ? " 這里是顯示在系統服務中的名稱 "
26 ? ???????????????????????????????????};
27 ?
28 ? ????????????Installers.Add(serviceInstaller);
29 ? ????????????Installers.Add(processInstaller);
30 ? ????????}
31 ? ????}
????? 3.用一個控制臺程序生成exe文件
?????
?2 ? ????{
?3 ? ???????? /// ? <summary>
?4 ? ???????? /// ?應用程序的主入口點。
?5 ? ???????? /// ? </summary>
?6 ? ???????? static ? void ?Main()
?7 ? ????????{
?8 ? ????????????var?servicesToRun? = ? new ?ServiceBase[]
?9 ? ??????????????????????????????????????????????{
10 ? ?????????????????????????????????????????????????? new ?TestService()
11 ? ??????????????????????????????????????????????};
12 ? ????????????ServiceBase.Run(servicesToRun);
13 ? ????????}
14 ? ????}
??? 接下來,編譯,生成一個test.exe文件。
??? 然后通過vs的命令提示行,使用命令 installutil test.exe
嘿嘿,看一下,系統服務中已經多了一個名為:“這里是顯示在系統服務中的名稱”的服務了
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
