中文字幕 日本 在线 高清,久久精品国产99精品国,超碰人人香蕉,一区二区三区无码高清视频

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

一、開發(fā)環(huán)境

操作系統(tǒng):Windows 10 X64

開發(fā)環(huán)境:VS2015

編程語言:C#

.NET版本:.NET Framework 4.0

目標(biāo)平臺:X86

二、創(chuàng)建Windows Service

1、新建一個(gè)Windows Service,并將項(xiàng)目名稱改為“MyWindowsService”,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

2、在解決方案資源管理器內(nèi)將Service1.cs改為MyService1.cs后并點(diǎn)擊“查看代碼”圖標(biāo)按鈕進(jìn)入代碼編輯器界面,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

3、在代碼編輯器內(nèi)輸入以下代碼,如下所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

using System;using System.ServiceProcess;using System.IO;namespace MyWindowsService{ public partial class MyService : ServiceBase { public MyService() { InitializeComponent(); } string filePath = @"D:MyServiceLog.txt"; protected overrIDE void OnStart(string[] args) { using (FileStream stream = new FileStream(filePath,FileMode.Append)) using (StreamWriter writer = new StreamWriter(stream)) { writer.WriteLine($"{DateTime.Now},服務(wù)啟動!"); } } protected override void OnStop() { using (FileStream stream = new FileStream(filePath, FileMode.Append)) using (StreamWriter writer = new StreamWriter(stream)) { writer.WriteLine($"{DateTime.Now},服務(wù)停止!"); } } }}

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

4、雙擊項(xiàng)目“MyWindowsService”進(jìn)入“MyService”設(shè)計(jì)界面,在空白位置右擊鼠標(biāo)彈出上下文菜單,選中“添加安裝程序”,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

5、此時(shí)軟件會生成兩個(gè)組件,分別為“serviceInstaller1”及“serviceProcessInstaller1”,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

6、點(diǎn)擊“serviceInstaller1”,在“屬性”窗體將ServiceName改為MyService,Description改為我的服務(wù),StartType保持為Manual,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

7、點(diǎn)擊“serviceProcessInstaller1”,在“屬性”窗體將Account改為LocalSystem(服務(wù)屬性系統(tǒng)級別),如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

8、鼠標(biāo)右鍵點(diǎn)擊項(xiàng)目“MyWindowsService”,在彈出的上下文菜單中選擇“生成”按鈕,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

9、至此,Windows服務(wù)已經(jīng)創(chuàng)建完畢。

三、創(chuàng)建安裝、啟動、停止、卸載服務(wù)的Windows窗體

1、在同一個(gè)解決方案里新建一個(gè)Windows Form項(xiàng)目,并命名為WindowsServiceClient,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

2、將該項(xiàng)目設(shè)置為啟動項(xiàng)目,并在窗體內(nèi)添加四個(gè)按鈕,分別為安裝服務(wù)、啟動服務(wù)、停止服務(wù)及卸載服務(wù),如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

3、按下F7進(jìn)入代碼編輯界面,引用“System.ServiceProcess”及“System.Configuration.Install”,并輸入如下代碼:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

using System;using System.Collections;using System.Windows.Forms;using System.ServiceProcess;using System.Configuration.Install;namespace WindowsServiceClient{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } string serviceFilePath = $"{Application.StartupPath}MyWindowsService.exe"; string serviceName = "MyService"; //事件:安裝服務(wù) private void button1_Click(object sender, EventArgs e) { if (this.IsServiceExisted(serviceName)) this.UninstallService(serviceName); this.InstallService(serviceFilePath); } //事件:啟動服務(wù) private void button2_Click(object sender, EventArgs e) { if (this.IsServiceExisted(serviceName)) this.ServiceStart(serviceName); } //事件:停止服務(wù) private void button4_Click(object sender, EventArgs e) { if (this.IsServiceExisted(serviceName)) this.ServiceStop(serviceName); } //事件:卸載服務(wù) private void button3_Click(object sender, EventArgs e) { if (this.IsServiceExisted(serviceName)) { this.ServiceStop(serviceName); this.UninstallService(serviceFilePath); } } //判斷服務(wù)是否存在 private bool IsServiceExisted(string serviceName) { ServiceController[] services = ServiceController.GetServices(); foreach (ServiceController sc in services) { if (sc.ServiceName.ToLower() == serviceName.ToLower()) { return true; } } return false; } //安裝服務(wù) private void InstallService(string serviceFilePath) { using (AssemblyInstaller installer = new AssemblyInstaller()) { installer.UseNewContext = true; installer.Path = serviceFilePath; IDictionary savedState = new Hashtable(); installer.Install(savedState); installer.Commit(savedState); } } //卸載服務(wù) private void UninstallService(string serviceFilePath) { using (AssemblyInstaller installer = new AssemblyInstaller()) { installer.UseNewContext = true; installer.Path = serviceFilePath; installer.Uninstall(null); } } //啟動服務(wù) private void ServiceStart(string serviceName) { using (ServiceController control = new ServiceController(serviceName)) { if (control.Status == ServiceControllerStatus.Stopped) { control.Start(); } } } //停止服務(wù) private void ServiceStop(string serviceName) { using (ServiceController control = new ServiceController(serviceName)) { if (control.Status == ServiceControllerStatus.Running) { control.Stop(); } } } }}

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

4、為了后續(xù)調(diào)試服務(wù)及安裝卸載服務(wù)的需要,將已生成的MyWindowsService.exe引用到本W(wǎng)indows窗體,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

5、由于需要安裝服務(wù),故需要使用UACAdministrator的權(quán)限,鼠標(biāo)右擊項(xiàng)目“WindowsServiceClient”,在彈出的上下文菜單中選擇“添加”->“新建項(xiàng)”,在彈出的選擇窗體中選擇“應(yīng)用程序清單文件”并單擊確定,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

6、打開該文件,并將<requestedExecutionLevel level="asInvoker" uiAccess="false" />改為<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

7、IDE啟動后,將會彈出如下所示的窗體(有的系統(tǒng)因UAC配置有可能不顯示),需要用管理員權(quán)限打開:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

8、重新打開后,在IDE運(yùn)行WindowsServiceClient項(xiàng)目;

9、使用WIN R的方式打開運(yùn)行窗體,并在窗體內(nèi)輸入services.msc后打開服務(wù),如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

10、點(diǎn)擊窗體內(nèi)的“安裝服務(wù)”按鈕,將會在服務(wù)中出現(xiàn)MyService,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

11、點(diǎn)擊“運(yùn)行服務(wù)”按鈕,將啟動并運(yùn)行服務(wù),如下所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

12、點(diǎn)擊“停止服務(wù)”按鈕,將會停止運(yùn)行服務(wù),如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

13、點(diǎn)擊“卸載服務(wù)”按鈕,將會從服務(wù)中刪除MyService服務(wù)。

14、以上啟動及停止服務(wù)將會寫入D:MyServiceLog.txt,內(nèi)容如下所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

源代碼下載:

http://pan.baidu.com/s/1kVza3Bp

補(bǔ)充:如何調(diào)試服務(wù)

1、要調(diào)試服務(wù),其實(shí)很簡單,如需將服務(wù)附加進(jìn)程到需要調(diào)試的項(xiàng)目里面即可,假如要調(diào)試剛才建的服務(wù),現(xiàn)在OnStop事件里設(shè)置斷點(diǎn),如下所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

2、啟動“WindowsServiceClient”項(xiàng)目,在“調(diào)試”菜單中選擇“附件到進(jìn)程”(服務(wù)必須事先安裝),如下所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

3、找到“MyWindowsService.exe”,點(diǎn)擊“附加”按鈕,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

4、點(diǎn)擊“停止服務(wù)”按鈕,程序?qū)谠O(shè)置斷點(diǎn)的地方中斷,如下圖所示:

使用C#創(chuàng)建Windows服務(wù)(使用chatgpt)

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2023年5月17日 下午1:41
下一篇 2023年5月17日 下午1:57

相關(guān)推薦

  • 科研項(xiàng)目實(shí)施計(jì)劃表模板

    科研項(xiàng)目實(shí)施計(jì)劃表模板 項(xiàng)目背景: 該項(xiàng)目旨在解決當(dāng)前城市交通擁堵問題。通過設(shè)計(jì)新的交通管理系統(tǒng),可以更好地控制交通流量,減少交通事故,提高城市交通效率。 項(xiàng)目目標(biāo): 1. 設(shè)計(jì)一…

    科研百科 2025年2月2日
    1
  • 衛(wèi)生科研項(xiàng)目標(biāo)準(zhǔn)

    衛(wèi)生科研項(xiàng)目標(biāo)準(zhǔn) 隨著現(xiàn)代醫(yī)學(xué)的不斷發(fā)展,衛(wèi)生科研項(xiàng)目標(biāo)準(zhǔn)也在不斷更新和完善。以下是一些常見的衛(wèi)生科研項(xiàng)目標(biāo)準(zhǔn),供您參考。 1. 項(xiàng)目目標(biāo) 項(xiàng)目目標(biāo)是指研究的主要目的和預(yù)期成果。在…

    科研百科 2025年1月31日
    1
  • 高途線上科研項(xiàng)目值得報(bào)嗎

    高途線上科研項(xiàng)目值得報(bào)嗎? 高途線上科研項(xiàng)目是一個(gè)值得報(bào)的選項(xiàng)。這些項(xiàng)目是由一些知名的在線教育平臺提供的,旨在為學(xué)生提供高質(zhì)量的學(xué)習(xí)體驗(yàn)。這些項(xiàng)目通常由經(jīng)驗(yàn)豐富的教師授課,并使用最…

    科研百科 2024年10月22日
    16
  • 云南網(wǎng)站建設(shè)制作公司-云南小程序制作開發(fā)-云南網(wǎng)絡(luò)推廣(云南網(wǎng)站制作推薦)

    云南網(wǎng)站建設(shè)制作公司-云南小程序制作開發(fā)-云南網(wǎng)絡(luò)推廣-譽(yù)網(wǎng)科技-15038317026-歡迎免費(fèi)咨詢 【譽(yù)網(wǎng)科技】是專業(yè)從事網(wǎng)站建設(shè)及網(wǎng)絡(luò)推廣的服務(wù)商,為企業(yè)和個(gè)人提供網(wǎng)站建設(shè)、…

    科研百科 2023年4月10日
    269
  • 中科院肖帥簡介

    中科院肖帥簡介 肖帥,男,漢族,1974年11月出生于江西南昌,博士,中科院物理所研究員、副研究員。 2001年9月-2005年7月,清華大學(xué),本科學(xué)習(xí),獲得學(xué)士學(xué)位。 2005年…

    科研百科 2024年10月8日
    13
  • 為什么選擇輕量級播控系統(tǒng)?(為什么選擇輕量級播控系統(tǒng)呢)

    相比較于一些致力于渠道建設(shè)的企業(yè),市場上存在大量對于屏幕管理和內(nèi)容刊播需求較小的政企和商戶門店,復(fù)雜的信息發(fā)布系統(tǒng)顯然無論從建設(shè)成本或者維護(hù)成本上對于這些用戶都是非常不友好的,因?yàn)?#8230;

    科研百科 2023年4月14日
    259
  • 崗位公布!速戳報(bào)名→

    就業(yè)是最基本的民生。為深入學(xué)習(xí)貫徹黨的二十大報(bào)告中關(guān)于“強(qiáng)化就業(yè)優(yōu)先政策,健全就業(yè)促進(jìn)機(jī)制,促進(jìn)高質(zhì)量充分就業(yè)”的精神,團(tuán)省委積極開展促進(jìn)大學(xué)生就業(yè)行動,近期,面向全省各級青聯(lián)委員…

    科研百科 2024年8月7日
    1
  • 項(xiàng)目管理系統(tǒng)主要作用

    項(xiàng)目管理系統(tǒng)的主要作用 項(xiàng)目管理系統(tǒng)是一種用于管理和組織項(xiàng)目的工具,可以幫助項(xiàng)目經(jīng)理、項(xiàng)目團(tuán)隊(duì)和公司實(shí)現(xiàn)更高效、更精準(zhǔn)的項(xiàng)目管理。項(xiàng)目管理系統(tǒng)的主要作用包括: 1. 提高項(xiàng)目管理效…

    科研百科 2024年12月24日
    2
  • 項(xiàng)目管理中進(jìn)度控制

    進(jìn)度控制是項(xiàng)目管理中至關(guān)重要的一部分,它關(guān)系到項(xiàng)目的整體規(guī)劃和實(shí)現(xiàn)。在項(xiàng)目管理中,進(jìn)度控制不僅能夠幫助項(xiàng)目經(jīng)理有效地管理項(xiàng)目進(jìn)度,還可以確保項(xiàng)目在預(yù)算、時(shí)間和質(zhì)量方面的成功完成。本…

    科研百科 2024年7月15日
    18
  • 落實(shí)垂直管理部門黨建工作責(zé)任情況報(bào)告

    落實(shí)垂直管理部門黨建工作責(zé)任情況報(bào)告 近年來,隨著國家垂直管理部門數(shù)量的不斷增加,黨建工作已經(jīng)成為各級垂直管理部門的重要工作之一。然而,在垂直管理部門中,黨建工作的實(shí)際落實(shí)還存在著…

    科研百科 2024年11月16日
    11