欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

圖解如何使用C#創(chuàng)建Windows服務(wù)

 更新時間:2023年07月03日 10:39:40   作者:常哥說編程  
本文主要介紹了圖解如何使用C#創(chuàng)建Windows服務(wù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

在實際應用過程中,有時候我們希望開發(fā)的程序,不需要界面,直接開機就可以長時間運行,這時候,我們可以考慮做成一個Windows服務(wù)。

這篇文章跟大家介紹一下,如何基于C#實現(xiàn)Windows服務(wù)的創(chuàng)建、安裝、啟動、停止和卸載。

Windows服務(wù)介紹

Microsoft Windows 服務(wù)能夠創(chuàng)建在它們自己的 Windows 會話中可長時間運行的可執(zhí)行應用程序。這些服務(wù)可以在計算機啟動時自動啟動,可以暫停和重新啟動而且不顯示任何用戶界面。這使服務(wù)非常適合在服務(wù)器上使用,或任何時候,為了不影響在同一臺計算機上工作的其他用戶,需要長時間運行功能時使用。還可以在不同于登錄用戶的特定用戶賬戶或默認計算機賬戶的安全上下文中運行服務(wù)。

創(chuàng)建Windows服務(wù)

1、創(chuàng)建一個新項目,項目類型選擇Windows服務(wù),如下圖所示:

2、項目名稱修改為thinger.WindowsServiceDemo,創(chuàng)建完成界面如下所示:

3、為了方便區(qū)分,將類名Service1改成MyService。

4、在設(shè)計界面,右擊鼠標,會出現(xiàn)如下彈窗,選擇添加安裝程序,并點擊添加安裝程序。

5、點擊添加安裝程序之后,會自動添加一個ProjectInstaller界面,里面有兩個組件,分別是serviceProcessInstaller和serviceInstaller。

6、先選擇serviceInstaller進行屬性設(shè)置,主要可以設(shè)置以下屬性:

  • ServiceName:服務(wù)名稱,這個后續(xù)會使用到。
  • Description:描述,可以自己添加一下說明
  • StartType:啟動類型,可以設(shè)置為手動或自動

7、接著選擇ProjectInstaller進行設(shè)置,主要設(shè)置Account,指示用來運行此服務(wù)的賬戶類型,可以設(shè)置為LocalSystem

8、設(shè)置完成之后,切換到MyService這個類,點擊切換到代碼視圖,我們可以看到后臺有一些自動生成的代碼:

    public partial class MyService : ServiceBase
    {
        public MyService()
        {
            InitializeComponent();
        }
        protected override void OnStart(string[] args)
        {
        }
        protected override void OnStop()
        {
        }
    }

從名稱可以看出,這里重寫了OnStart和OnStop接口,可以在這里寫一些啟動服務(wù)和停止服務(wù)的邏輯。

9、寫了一個簡單的邏輯,就是每次服務(wù)啟動或停止都會向指定的文件中寫入一串信息。

        protected override void OnStart(string[] args)
        {
            WriteInfo("服務(wù)啟動");
        }
        protected override void OnStop()
        {
            WriteInfo("服務(wù)停止");
        }
        private string filePath = @"D:\ServiceLog.txt";
        private void WriteInfo(string info)
        {
            using (FileStream stream = new FileStream(filePath, FileMode.Append))
            {
                using (StreamWriter writer = new StreamWriter(stream))
                {
                    writer.WriteLine($"{DateTime.Now},{info}");
                }
            }
        }

10、點擊項目,右擊生成。

11、這樣,一個簡單的Windows服務(wù)就創(chuàng)建完成了。

安裝卸載Windows服務(wù)

我們直接運行剛剛創(chuàng)建的服務(wù),發(fā)現(xiàn)是無法運行的,提示使用installutil.exe來運行。

如果安裝了VS,這個exe應用程序在C盤里可以找到的,具體路徑為:C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe

接下來,我們使用這個exe來進行安裝和卸載Windows服務(wù)。

1、首先,使用管理員權(quán)限打開CMD,然后進入這個路徑下,便于直接操作InstallUtil。

2、安裝服務(wù)命令:installutil exe絕對路徑 ;卸載服務(wù)命令:installutil exe絕對路徑 -u ;查看安裝執(zhí)行結(jié)果:

打開服務(wù),可以看到TestService這個名稱的服務(wù)已經(jīng)安裝完成,

3、安裝完成后,雙擊打開,可以啟動服務(wù):

4、也可以手動停止服務(wù):

5、觀察D盤文件,是否存在信息:

6、卸載服務(wù)結(jié)果:

到此這篇關(guān)于圖解如何使用C#創(chuàng)建Windows服務(wù) 的文章就介紹到這了,更多相關(guān)C#創(chuàng)建Windows服務(wù) 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 實現(xiàn)抓包的實例代碼

    C# 實現(xiàn)抓包的實例代碼

    這篇文章主要介紹了C# 實現(xiàn)抓包的方法,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-08-08
  • C# 多線程中經(jīng)常訪問同一資源可能造成哪些問題

    C# 多線程中經(jīng)常訪問同一資源可能造成哪些問題

    這篇文章主要介紹了C# 多線程中經(jīng)常訪問同一資源可能造成哪些問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • C#自定義類型強制轉(zhuǎn)換實例分析

    C#自定義類型強制轉(zhuǎn)換實例分析

    這篇文章主要介紹了C#自定義類型強制轉(zhuǎn)換的方法,實例分析了C#類型轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • C#實現(xiàn)控制攝像頭的類

    C#實現(xiàn)控制攝像頭的類

    這篇文章主要介紹了C#實現(xiàn)控制攝像頭的類,涉及C#操作攝像頭的初始化、抓圖、錄像等功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • c# 實現(xiàn)觀察者模式

    c# 實現(xiàn)觀察者模式

    這篇文章主要介紹了c# 實現(xiàn)觀察者模式的步驟,幫助大家更好的理解和使用c#實現(xiàn)設(shè)計模式,感興趣的朋友可以了解下
    2021-01-01
  • c#與js隨機數(shù)生成方法

    c#與js隨機數(shù)生成方法

    這篇文章主要介紹了c#與js隨機數(shù)生成方法,實例分析了C#與js生成隨機數(shù)的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • C#實現(xiàn)任務(wù)欄通知窗口

    C#實現(xiàn)任務(wù)欄通知窗口

    作為程序員在享受的同時我們也不禁要問:這到底是怎么實現(xiàn)的呢?本文就利用Visual Studio .Net C# 2005以及.Net框架繪圖技術(shù)來實現(xiàn)這種任務(wù)欄通知窗口。
    2015-10-10
  • 詳解WCF服務(wù)中的svc文件

    詳解WCF服務(wù)中的svc文件

    本文詳細講解了WCF服務(wù)中的svc文件,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C#實現(xiàn)單例模式的多種方式

    C#實現(xiàn)單例模式的多種方式

    這篇文章介紹了C#實現(xiàn)單例模式的多種方式,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • C# Winform實現(xiàn)自定義分頁控件

    C# Winform實現(xiàn)自定義分頁控件

    一些第三方的分頁控件要么就是界面不夠美觀大方,要么就是使用起來感覺很麻煩,所以本文就為大家介紹一下如何利用Winform自定義分頁控件,需要的可以參考一下
    2023-07-07

最新評論