當前位置:
首頁 > 最新 > 在c#中創建Windows服務

在c#中創建Windows服務

在這裡,我將在c# . net中解釋Windows服務。

1、Windows服務的介紹。

2、如何在c# . net中創建Windows服務。


Windows服務通常在操作系統OS啟動並在後台運行應用程序時啟動。Windows服務在自己的會話中執行應用程序。它可以自動啟動,也可以手動暫停、停止和重新啟動。

您可以通過以下方式找到服務:

1、進入控制面板選擇「服務」內部的「管理工具」。

2、打開命令行窗口(窗口+ R),輸入service.msc,按回車。


步驟1

打開Visual Studio,打開>文件新建和選擇項目。現在從對話框中選擇一個新項目,選擇「Window Service」並單擊OK按鈕。

步驟2

進入Visual c# ->「Windows Desktop」」->「Windows Service」,給你的項目一個合適的名字,然後點擊OK

一旦你點擊OK,下面的屏幕就會出現,這就是你的服務

步驟3

右鍵單擊空白區域並選擇「添加安裝程序」。


在運行Windows服務之前,需要安裝安裝程序,安裝程序將它註冊到服務控制管理器。

添加安裝程序之後,ProjectInstaller將添加到項目和ProjectInstakker.cs文件將被打開。別忘了(按ctrl + shift + s鍵)保存項目。

解決方案瀏覽器如下圖:

步驟4

右鍵單擊空白區域,選擇「查看代碼」

步驟5

它有一個構造函數,它包含InitializeComponent方法。

InitializeComponent方法包含創建和初始化用戶界面對象的邏輯,這些對象拖在表單的表面上,並提供表單設計器的屬性網格。

非常重要:在調用InitializeComponent方法之前,不要嘗試調用任何方法。

步驟6

選擇InitializeComponent方法並按F12鍵進入定義。

步驟7

現在在安裝服務時添加以下一行:

this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;

您還可以添加描述並顯示服務名稱(可選)。

this.serviceInstaller1.Description = "My First Service demo";

this.serviceInstaller1.DisplayName = "MyFirstService.Demo";

步驟8

在這一步中,我們將實現一個計時器,並編寫代碼在給定的時間調用服務。我們將在文本文件中創建一個簡單的寫操作。

Service1.cs class

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Diagnostics;

using System.IO;

using System.Linq;

using System.ServiceProcess;

using System.Text;

using System.Threading.Tasks;

using System.Timers;

namespace MyFirstService {

public partial class Service1: ServiceBase {

Timer timer = new Timer(); // name space(using System.Timers;)

public Service1() {

InitializeComponent();

}

protected override void OnStart(string[] args) {

WriteToFile("Service is started at " + DateTime.Now);

timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);

timer.Interval = 5000; //number in milisecinds

timer.Enabled = true;

}

protected override void OnStop() {

WriteToFile("Service is stopped at " + DateTime.Now);

}

private void OnElapsedTime(object source, ElapsedEventArgs e) {

WriteToFile("Service is recall at " + DateTime.Now);

}

public void WriteToFile(string Message) {

string path = AppDomain.CurrentDomain.BaseDirectory + "Logs";

if (!Directory.Exists(path)) {

Directory.CreateDirectory(path);

}

string filepath = AppDomain.CurrentDomain.BaseDirectory + "LogsServiceLog_" + DateTime.Now.Date.ToShortDateString().Replace("/", "_") + ".txt";

if (!File.Exists(filepath)) {

// Create a file to write to.

using(StreamWriter sw = File.CreateText(filepath)) {

sw.WriteLine(Message);

}

} else {

using(StreamWriter sw = File.AppendText(filepath)) {

sw.WriteLine(Message);

代碼說明——上面的代碼將每5秒調用一個服務,如果不存在,則創建一個文件夾並寫我們的消息。


右鍵單擊您的項目或解決方案並選擇Rebuild。

第十步

以管理員運行的方式打開命令行:

步驟11

在命令提示符中啟動下面的命令並按Enter。


現在進入的項目源文件目錄> bin > Debug ,然後複製Windows服務exe文件的完整路徑

步驟13

打開命令提示符並啟動下面的命令並按enter鍵。

語法

InstallUtil.exe+Your copied path + your service name + .exe

Our Path

InstallUtil.exe C:UsersFaisal-PathansourcereposMyFirstServiceMyFirstServicebinDebugMyFirstService.exe

步驟14

按以下步驟打開服務:

按下窗口鍵+ R,打開命令行窗口。

輸入services.msc

找到你的服務。


將在您的bin文件夾中創建一個日誌文件夾。

如果您想卸載服務,請啟動下面的命令。

InstallUtil.exe -u +複製路徑+服務名+ .exe

我們的路徑InstallUtil.exe -u C:UsersFaisal-PathansourcereposMyFirstServiceMyFirstServicebinDebugMyFirstService.exe


在本文中,我們學習了如何使用來自命令行的InstallUtil.exe創建Windows服務並安裝/卸載它。

我希望我已經清楚地解釋了每個步驟,讓所有開發人員能輕鬆理解。你可以給這篇文章留下反饋/評論/問題。

請關注公眾號:程序你好


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員之路 的精彩文章:

谷歌 Datally 應用增加了更多上網控制功能

TAG:程序員之路 |