新聞中心
這里有您想知道的互聯(lián)網營銷解決方案
聊聊.Net如何實現(xiàn)Windows服務
本文轉載自微信公眾號「UP技術控」,作者conan5566。轉載本文請聯(lián)系UP技術控公眾號。

創(chuàng)新互聯(lián)建站專注于平江企業(yè)網站建設,成都響應式網站建設公司,成都商城網站開發(fā)。平江網站建設公司,為平江等地區(qū)提供建站服務。全流程按需求定制制作,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務
Topshelf 是一個開源的跨平臺的宿主服務框架,支持Windows和Mono,只需要幾行代碼就可以構建一個很方便使用的服務宿主。
使用Topshelf可以非常方便的將一個C#控制臺程序部署成為一個Windows Service,使用它可以很方便的構建跨平臺服務寄主,而在調試時直接以控制臺的形式運行即可,非常方便。
TopShelf 安裝不需要依賴 .net framework 框架中的 InstallUtil.exe 工具。
- static void Main(string[] args)
- {
- HostFactory.Run(x =>
- {
- x.UseAssemblyInfoForServiceInfo();
- x.Service
(w => - {
- w.ConstructUsing(name => new WriteTxtClass()); //使用 WriteTxtClass實體
- w.WhenStarted(tc => tc.WriteTxtStart()); //開始服務觸發(fā) WriteTxtStart 函數(shù)
- w.WhenStopped(tc => tc.WriteTxtStop()); //結束服務觸發(fā) WriteTxtStop 函數(shù)
- });
- x.SetServiceName("TopShelfService1"); //服務名
- x.SetDisplayName("TopShelfService1");//服務顯示名稱
- x.SetInstanceName("TopShelfService1"); //服務顯示名稱后面的描敘
- x.SetDescription("TopShelfService1 is Test Services"); // 服務描敘
- x.RunAsLocalSystem();
- x.StartAutomatically();
- });
- }
- public class WriteTxtClass
- {
- public void WriteTxtStart()
- {
- string filePath = AppDomain.CurrentDomain.BaseDirectory + "log\\test.txt";
- if (!File.Exists(filePath))
- {
- FileStream stream = new FileStream(filePath, FileMode.Create);
- StreamWriter writer = new StreamWriter(stream, Encoding.Default);
- writer.WriteLine(DateTime.Now.ToString() + ":Start Service");//寫入一行,寫完后會自動換行
- writer.Close();//釋放內存
- stream.Close();//釋放內存
- }
- else
- {
- FileStream stream = new FileStream(filePath, FileMode.Append);//再原有文件中追加記錄,不覆蓋
- StreamWriter writer = new StreamWriter(stream, Encoding.Default);
- writer.WriteLine(DateTime.Now.ToString() + ":Start Service");//寫入一行,寫完后會自動換行
- writer.Close();//釋放內存
- stream.Close();//釋放內存
- }
- }
- public void WriteTxtStop()
- {
- string filePath = AppDomain.CurrentDomain.BaseDirectory + "log\\test.txt";
- if (!File.Exists(filePath))
- {
- FileStream stream = new FileStream(filePath, FileMode.Create);
- StreamWriter writer = new StreamWriter(stream, Encoding.Default);
- writer.WriteLine(DateTime.Now.ToString() + ":Stop Service");//寫入一行,寫完后會自動換行
- writer.Close();//釋放內存
- stream.Close();//釋放內存
- }
- else
- {
- FileStream stream = new FileStream(filePath, FileMode.Append);//再原有文件中追加記錄,不覆蓋
- StreamWriter writer = new StreamWriter(stream, Encoding.Default);
- writer.WriteLine(DateTime.Now.ToString() + ":Stop Service");//寫入一行,寫完后會自動換行
- writer.Close();//釋放內存
- stream.Close();//釋放內存
- }
- }
- }
安裝和卸載windows服務 TopShelfService.exe install
#安裝Windows服務 TopShelfService.exe uninstall #卸載Windows服務
本文名稱:聊聊.Net如何實現(xiàn)Windows服務
網站地址:http://m.5511xx.com/article/cdhdhhj.html


咨詢
建站咨詢
