1.新建Windows服务


 

2.切换到代码视图,拷入如下代码


该服务以10S的间隔创建 d:/1.txt 文件

  1. 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 WindowsServiceTest
    {
    publicpartialclassService1:ServiceBase
    {
    publicService1()
    {
    InitializeComponent();
    }
    protectedoverridevoidOnStart(string[] args)
    {
    //服务开启执行代码
    StartDoSomething();
    }
    protectedoverridevoidOnStop()
    {
    //服务结束执行代码
    }
    protectedoverridevoidOnPause()
    {
    //服务暂停执行代码
    base.OnPause();
    }
    protectedoverridevoidOnContinue()
    {
    //服务恢复执行代码
    base.OnContinue();
    }
    protectedoverridevoidOnShutdown()
    {
    //系统即将关闭执行代码
    base.OnShutdown();
    }
    privatevoidStartDoSomething()
    {
    System.Timers.Timer timer =newSystem.Timers.Timer(10000);//间隔10秒
    timer.AutoReset=true;
    timer.Enabled=false;//执行一次
    timer.Elapsed+=newElapsedEventHandler(WriteSomething);
    timer.Start();
    }
    privatevoidWriteSomething(object source,System.Timers.ElapsedEventArgs e)
    {
    FileStream fs =null;
    try
    {
    fs =newFileStream("d:/1.txt",FileMode.OpenOrCreate);
    string strText =@"以10秒的间隔重复创建该文件,若已有同名文件,则保持不变";
    //获得字节数组
    byte[] data =new UTF8Encoding().GetBytes(strText);
    //开始写入
    fs.Write(data,0, data.Length);
    //清空缓冲区、关闭流
    fs.Flush();
    fs.Close();
    fs.Dispose();
    }
    catch
    {
    }
    finally
    {
    if(fs !=null)
    {
    fs.Close();
    fs.Dispose();
    }
    }
    }
    }
    }

      

3.添加安装程序并设置控件属性


1.在设计页面右键,选择添加安装程序
 

2.将左上角第一个控件的Account属性设置为LocalService

3.可以自行修改第二个控件的ServiceName(服务名称,不可和系统已有的冲突),StartType设置为Automatic

4.编译项目


1.生成解决方案(Ctrl+Shift+B),编译完成后会生成对应的xxx.exe

2.找到系统里面InstallUtil的安装目录 例如 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe  实在找不到就用Everything吧

3.Win+R CMD  cd 跳转到InstallUtil的安装路径,运行如下命令  InstallUtil.exe+空格+4.1生成的exe的目录

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319

InstallUtil.exe E:\GitVSTest\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exe

5.启动服务


在计算机-管理-服务和应用程序-服务 里面找到刚才编译的服务,右键启动即可

6.修改服务


1.在服务里面,停止对应服务
2.修改源代码并再次生成解决方案(Ctrl+Shift+B)
3.再次启动服务

7.卸载服务


卸载服务运行的命名和4.3 类似
依然是在InstallUtil 目录下,不过是运行 InstallUtil.exe /u 生成的exe的目录
例如:C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe /u E:\GitVSTest\WindowsServiceT2\WindowsServiceT2\bin\Debug\WindowsServiceT2.exe

初识Windows服务 C#的更多相关文章

  1. C#创建windows服务(一:初识windows服务)

    一 . 服务简介 Microsoft Windows 服务(过去称为 NT 服务)允许用户创建可在其自身的 Windows 会话中长时间运行的可执行应用程序. 这些服务可在计算机启动时自动启动,可以暂 ...

  2. windows服务初识

    参考网址1:http://www.vchome.net/dotnet/dotnetdocs/dotnet38.htm 参考网址2:http://zhidao.baidu.com/link?url=7- ...

  3. 基于SignalR实现B/S系统对windows服务运行状态的监测

    通常来讲一个BS项目肯定不止单独的一个BS应用,可能涉及到很多后台服务来支持BS的运行,特别是针对耗时较长的某些任务来说,Windows服务肯定是必不可少的,我们还需要利用B/S与windows服务进 ...

  4. C#创建、安装、卸载、调试Windows Service(Windows 服务)的简单教程

    前言:Microsoft Windows 服务能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面.这 ...

  5. 玩转Windows服务系列汇总

    玩转Windows服务系列汇总 创建Windows服务 Debug.Release版本的注册和卸载及其原理 无COM接口Windows服务启动失败原因及解决方案 服务运行.停止流程浅析 Windows ...

  6. 玩转Windows服务系列——给Windows服务添加COM接口

    当我们运行一个Windows服务的时候,一般情况下,我们会选择以非窗口或者非控制台的方式运行,这样,它就只是一个后台程序,没有界面供我们进行交互. 那么当我们想与Windows服务进行实时交互的时候, ...

  7. 玩转Windows服务系列——使用Boost.Application快速构建Windows服务

    玩转Windows服务系列——创建Windows服务一文中,介绍了如何快速使用VS构建一个Windows服务.Debug.Release版本的注册和卸载,及其原理和服务运行.停止流程浅析分别介绍了Wi ...

  8. 玩转Windows服务系列——Debug、Release版本的注册和卸载,及其原理

    Windows服务Debug版本 注册 Services.exe -regserver 卸载 Services.exe -unregserver Windows服务Release版本 注册 Servi ...

  9. C# 开发windows服务的一些心得

    最近在做一个windows服务的项目,发现并解决了一些问题,拿出来和大家分享一下,以下windows服务简称“服务” 文章会在适合时间更新,因为朋友们在不断提出新的意见或思路,感谢-.- 1.服务如何 ...

随机推荐

  1. 线性一致性与全序广播------《Designing Data-Intensive Applications》读书笔记12

    上一篇聊了聊构建分布式系统所面临的困难,这篇将着重讨论构建容错分布式系统的算法与协议.构建容错系统的最佳方法是使用通用抽象,允许应用程序忽略分布式系统中的一些问题.本篇我们先聊一聊线性一致性,以及与线 ...

  2. OpenCV角点检测源代码分析(Harris和ShiTomasi角点)

    OpenCV中常用的角点检测为Harris角点和ShiTomasi角点. 以OpenCV源代码文件 .\opencv\sources\samples\cpp\tutorial_code\Trackin ...

  3. JS声明对象时属性名加引号与不加引号的问题

    般情况下属性名加引号和不加引号是都可以的,效果是一样的. var obj = { name : '你好', 'age' : 1, }; document.write( obj['name'] + '& ...

  4. caffe中Makefile.config详解

    ## Refer to http://caffe.berkeleyvision.org/installation.html # Contributions simplifying and improv ...

  5. mysql中的coalesce用法

    在mysql中,其实有不少方法和函数是很有用的,这次介绍一个叫coalesce的,拼写十分麻烦,但其实作用是将返回传入的参数中第一个非null的值,比如    SELECT COALESCE(NULL ...

  6. FTP主动模式和被动模式

    FTP主动模式和被动模式 FTP是仅基于TCP的服务,不支持UDP.与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口).通常来说这两个端口是21(命令端口)和20(数据端口 ...

  7. Redis进阶实践之十二 Redis的Cluster集群动态扩容

    一.引言     上一篇文章我们一步一步的教大家搭建了Redis的Cluster集群环境,形成了3个主节点和3个从节点的Cluster的环境.当然,大家可以使用 Cluster info 命令查看Cl ...

  8. NoSQL性能测试工具YCSB-Running a Workload

    写在前面 目前,在系统设计中引入了越来越多的NoSQL产品,例如Redis/ MongoDB/ HBase等,其中性能指标往往会成为权衡不同NoSQL产品的关键因素.对这些产品在性能表现和产品选择上的 ...

  9. centos/linux下的安装vsftpd

    1.简介: vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,ftp服务器软件 2.安 ...

  10. 验证SQLServer死锁进程

    SELECT '现在没有阻塞和死锁信息' AS message -- 循环开始WHILE @intCounter <= @intCountProperties BEGIN-- 取第一条记录 SE ...