zoukankan      html  css  js  c++  java
  • C#开发Windows服务(附源码DEMO)

    首先是创建一个项目:

    创建完后是这个样子:

    然后给自己的服务改一个自己想要的名字,我这里修改成MyWindowsWeiHuService,这个同时也是服务运行时候的名字,也就是鼠标右击“我的电脑”——管理——服务和应用程序——服务 里面显示的服务名。

    然后开始写代码,服务运行时,执行什么代码,服务关闭时,执行什么代码:

    加入你要做的事情,是创建一个txt,然后往txt里面写点东西,代码如下:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Diagnostics;
     6 using System.Linq;
     7 using System.ServiceProcess;
     8 using System.Text;
     9 
    10 namespace MyWindowsService
    11 {
    12     public partial class MyWindowsWeiHuService : ServiceBase
    13     {
    14         public MyWindowsWeiHuService()
    15         {
    16             InitializeComponent();
    17         }
    18 
    19         protected override void OnStart(string[] args)
    20         {
    21             using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\我要创建的文本文档.txt", true))
    22             {
    23                 sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "服务开始运行.");
    24             }
    25 
    26         }
    27 
    28         protected override void OnStop()
    29         {
    30 
    31             using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\我要创建的文本文档.txt", true))
    32             {
    33                 sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "服务结束运行.");
    34             }
    35         }
    36     }
    37 }
    请看代码

    写完代码之后,回到设计界面,操作如下:

    在设计视图,点击右键,点击“添加安装程序”

    点击完“添加安装程序”后

     点击serviceInstaller1

    可以写一下服务的描述

    可以选择服务的启动类型

    然后,点击serviceProcessInstaller1,设置一下Account 为LocalSystem

    截止到目前,Windows服务的开发已经完成了。点击F5生成就行。

    生成后,打开解决方案的 binDebug 文件夹,会看到生成后的文件:

    服务是不能够直接双击安装的,需要在命令行里调用 installutil.exe,来安装才行,这个东西的完整路径是:%SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe

    运行的命令是: %SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe  这里接着你服务的完成路径。

    在本案例中,完成安装命令是 :%SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe D:软件开发测试MyWindowsServiceMyWindowsServiceinDebugMyWindowsService.exe

    当你将这个命令拷贝到CMD里面运行的时候,你会发现安装不成功,用C#开发出来的windows服务安装失败。

     

    出现这个问题的运用,是因为你的CMD,没有使用管理员运行。只需要用管理员运行CMD,再在CMD里面打命令,就会安装成功了。

    为了方便,我们可以将安装命令做成bat文件,然后右键管理员运行bat文件,就可以了

    bat文件里面的内容如下:

    %SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe D:软件开发测试MyWindowsServiceMyWindowsServiceinDebugMyWindowsService.exe

    pause

    为什么要加上pause呢,因为不加的话,这个黑窗口会一闪而过,感觉好像中了病毒一样。

    最后我们创建了一个“安装.bat”

    我们右键,以管理员运行“安装.bat”

    成功了,再敲一下回车,黑色窗口就会消失

    我打开windows的服务管理器界面,看看

     可以看到我们维护的名字与描述。

    现在服务还没有启动,我们启动服务

    启动后,我们可以看到C盘下面有我们刚才创建的文件

    我们现在来结束服务吧

     结束后,打开我们创建的文件看看

    好的。现在我们来讲如何删除服务。

    方法跟安装有点类似,也是创建一个bat文件,bat文件里面写以下内容

    %SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe /u D:软件开发测试MyWindowsServiceMyWindowsServiceinDebugMyWindowsService.exe
    pause

    保存为“卸载.bat”

    同样右键,以管理员运行

    卸载成功!

     源码DEMO下载地址:https://download.csdn.net/download/jialiang88/10342170

  • 相关阅读:
    [BAT] 通过批处理删除7天前的报告,并删除当前目录下的空文件夹
    Codeforces Round #361 (Div. 2) A
    Codeforces Round #359 (Div. 2) C
    Codeforces Round #359 (Div. 2) B
    Codeforces Round #359 (Div. 2) A
    Codeforces Round #357 (Div. 2) C
    Codeforces Round #357 (Div. 2) B
    Codeforces Round #357 (Div. 2) A
    Codeforces Round #356 (Div. 2) C
    Codeforces Round #356 (Div. 2) B
  • 原文地址:https://www.cnblogs.com/manbumao/p/8797620.html
Copyright © 2011-2022 走看看