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

  • 相关阅读:
    Serialize and Deserialize Binary Tree
    sliding window substring problem汇总贴
    10. Regular Expression Matching
    《深入理解计算机系统》(CSAPP)读书笔记 —— 第七章 链接
    程序员如何写一份合格的简历?(附简历模版)
    9个提高代码运行效率的小技巧你知道几个?
    《深入理解计算机系统》(CSAPP)读书笔记 —— 第六章 存储器层次结构
    24张图7000字详解计算机中的高速缓存
    《深入理解计算机系统》(CSAPP)实验四 —— Attack Lab
    《深入理解计算机系统》(CSAPP)读书笔记 —— 第五章 优化程序性能
  • 原文地址:https://www.cnblogs.com/manbumao/p/8797620.html
Copyright © 2011-2022 走看看