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. BZOJ 2342: [Shoi2011]双倍回文 [Manacher + set]

    题意: 求最长子串使得它有四个相同的回文串SSSS相连组成 枚举中间x 找右边的中间y满足 y-r[y]<=x y<=x+r[x]/2 用个set维护 注意中间只能是# #include ...

  2. EntityFramework 实践 Overview

    使用EntityFramework,是微软出的一个轻量级ORM框架,对于做一些小型的项目非常方便,几乎是零配置,以及对linq的支持,所以非常的易于使用,虽然已经使用EntityFramework很久 ...

  3. 通过Log4net来配置我们需要的日志文件格式

      我们先来看看配置写入txt文件是如何 的,当然不止可以配置txt格式还有其它格式. <?xml version="1.0" encoding="utf-8&qu ...

  4. 安装Spring Tool Suite(STS)

    JAVA开发工具中,常用工具就是Eclipse,IntelliJ IDEA. 现在使用spring boot&cloud框架进行开发的时候,虽然可以使用上面两个工具,但都未必就真的量身定制,I ...

  5. 机器学习实践之Logistic回归

        关于本文说明,本人原博客地址位于http://blog.csdn.net/qq_37608890,本文来自笔者于2017年12月17日 19:18:31所撰写内容(http://blog.cs ...

  6. ASP.NET Core 发布 centos7 配置守护进程

    ASP.NET Core应用程序发布linux在shell中运行是正常的.可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 ...

  7. ubuntu14.04上实现faster rcnn_TF的demo程序及训练过程

    安装环境:Ubuntu14.04.显卡Tesla K40C+GeForce GT 705.tensorflow1.0.0.pycharm5.0 说明:原文见博客园,有问题原文下留言,不定期回复.本文作 ...

  8. php正则判断字符串是否含有中文

    <?php $str = '若你安好便是晴天'; if (preg_match('/^[\x{4e00}-\x{9fa5}]+$/u', $str)>0) { echo '全是中文'; } ...

  9. Python:注释

    什么是注释? 注销:不参与执行 解释代码:有人习惯把代码解释放边上,建议放上边. 1)单行注释以 # 开头 # 需求12:键盘输入正整数n,求出n与其反序之和并输出例如:123反序321输出123+3 ...

  10. iOS 添加WKWebView导致控制器无法释放的问题

    在WkWebView与JavaScript交互中,经常会在原生中注入MessageHandler,app中注入MessageHandler的方法 WKWebViewConfiguration *con ...