自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊.Net如何實現(xiàn)Windows服務(wù)

開發(fā) 后端
Topshelf 是一個開源的跨平臺的宿主服務(wù)框架,支持Windows和Mono,只需要幾行代碼就可以構(gòu)建一個很方便使用的服務(wù)宿主。

 [[411065]]

本文轉(zhuǎn)載自微信公眾號「UP技術(shù)控」,作者conan5566。轉(zhuǎn)載本文請聯(lián)系UP技術(shù)控公眾號。

Topshelf 是一個開源的跨平臺的宿主服務(wù)框架,支持Windows和Mono,只需要幾行代碼就可以構(gòu)建一個很方便使用的服務(wù)宿主。

使用Topshelf可以非常方便的將一個C#控制臺程序部署成為一個Windows Service,使用它可以很方便的構(gòu)建跨平臺服務(wù)寄主,而在調(diào)試時直接以控制臺的形式運行即可,非常方便。

TopShelf 安裝不需要依賴 .net framework 框架中的 InstallUtil.exe 工具。

  1. static void Main(string[] args) 
  2.         { 
  3.  
  4.  
  5.             HostFactory.Run(x => 
  6.             { 
  7.                 x.UseAssemblyInfoForServiceInfo(); 
  8.                 x.Service<WriteTxtClass>(w => 
  9.                 { 
  10.                     w.ConstructUsing(name => new WriteTxtClass());  //使用 WriteTxtClass實體 
  11.                     w.WhenStarted(tc => tc.WriteTxtStart());   //開始服務(wù)觸發(fā) WriteTxtStart 函數(shù) 
  12.                     w.WhenStopped(tc => tc.WriteTxtStop());    //結(jié)束服務(wù)觸發(fā) WriteTxtStop 函數(shù) 
  13.                 }); 
  14.  
  15.  
  16.                 x.SetServiceName("TopShelfService1"); //服務(wù)名 
  17.                 x.SetDisplayName("TopShelfService1");//服務(wù)顯示名稱 
  18.                 x.SetInstanceName("TopShelfService1"); //服務(wù)顯示名稱后面的描敘 
  19.                 x.SetDescription("TopShelfService1 is Test Services"); // 服務(wù)描敘 
  20.                 x.RunAsLocalSystem(); 
  21.                 x.StartAutomatically(); 
  22.  
  23.  
  24.             }); 
  25.         } 
  26.  
  27.     public class WriteTxtClass 
  28.     { 
  29.         public void WriteTxtStart() 
  30.         { 
  31.             string filePath = AppDomain.CurrentDomain.BaseDirectory + "log\\test.txt"
  32.             if (!File.Exists(filePath)) 
  33.             { 
  34.                 FileStream stream = new FileStream(filePath, FileMode.Create); 
  35.                 StreamWriter writer = new StreamWriter(stream, Encoding.Default); 
  36.                 writer.WriteLine(DateTime.Now.ToString() + ":Start Service");//寫入一行,寫完后會自動換行 
  37.                 writer.Close();//釋放內(nèi)存 
  38.                 stream.Close();//釋放內(nèi)存 
  39.             } 
  40.             else 
  41.             { 
  42.                 FileStream stream = new FileStream(filePath, FileMode.Append);//再原有文件中追加記錄,不覆蓋 
  43.                 StreamWriter writer = new StreamWriter(stream, Encoding.Default); 
  44.                 writer.WriteLine(DateTime.Now.ToString() + ":Start Service");//寫入一行,寫完后會自動換行 
  45.                 writer.Close();//釋放內(nèi)存 
  46.                 stream.Close();//釋放內(nèi)存 
  47.             } 
  48.         } 
  49.         public void WriteTxtStop() 
  50.         { 
  51.             string filePath = AppDomain.CurrentDomain.BaseDirectory + "log\\test.txt"
  52.             if (!File.Exists(filePath)) 
  53.             { 
  54.                 FileStream stream = new FileStream(filePath, FileMode.Create); 
  55.                 StreamWriter writer = new StreamWriter(stream, Encoding.Default); 
  56.                 writer.WriteLine(DateTime.Now.ToString() + ":Stop Service");//寫入一行,寫完后會自動換行 
  57.                 writer.Close();//釋放內(nèi)存 
  58.                 stream.Close();//釋放內(nèi)存 
  59.             } 
  60.             else 
  61.             { 
  62.                 FileStream stream = new FileStream(filePath, FileMode.Append);//再原有文件中追加記錄,不覆蓋 
  63.                 StreamWriter writer = new StreamWriter(stream, Encoding.Default); 
  64.                 writer.WriteLine(DateTime.Now.ToString() + ":Stop Service");//寫入一行,寫完后會自動換行 
  65.                 writer.Close();//釋放內(nèi)存 
  66.                 stream.Close();//釋放內(nèi)存 
  67.             } 
  68.         } 
  69.     } 

安裝和卸載windows服務(wù) TopShelfService.exe install

#安裝Windows服務(wù) TopShelfService.exe uninstall #卸載Windows服務(wù)

 

責(zé)任編輯:武曉燕 來源: UP技術(shù)控
相關(guān)推薦

2021-02-07 09:05:56

微服務(wù)結(jié)構(gòu)云原生

2024-05-31 08:45:24

2021-06-08 09:28:12

.Net通知服務(wù)

2021-05-19 08:04:11

ASP.Net服務(wù)性原則

2022-04-11 08:17:07

JVMJava進程

2022-06-17 07:49:14

緩存LRU

2010-01-15 16:03:48

VB.NET重載Win

2024-07-08 00:00:02

.NET系統(tǒng)調(diào)度器

2021-07-11 12:12:49

.NETJWTjson

2024-04-15 10:32:14

2023-01-03 07:40:27

自定義滑塊組件

2024-05-23 11:26:02

2024-01-10 07:23:52

高可用策略實踐

2024-05-23 08:15:03

.NET網(wǎng)頁數(shù)據(jù)

2011-09-01 11:08:41

安全登陸Windows服務(wù)器網(wǎng)絡(luò)安全

2011-08-08 10:35:40

服務(wù)器NTFSTDE

2017-06-02 08:32:01

調(diào)度服務(wù)數(shù)據(jù)

2023-08-07 08:32:05

RocketMQ名字服務(wù)

2023-12-15 09:57:13

微服務(wù)鏈路服務(wù)

2024-11-27 16:07:45

點贊
收藏

51CTO技術(shù)棧公眾號