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. 关于.NET C#上传大文件的解决办法

    1.最近在解决问题的时候遇到如何将视频以及语音和图片上传到阿里云的服务器中.但是遇到一些大文件就导致无法进行上传. 2.在将图片进行上传到阿里云的时候先将文件转化为二进制文件,然后通过文件流 的形式进 ...

  2. SQL Server 文件操作

    在master数据库中,SQL Server提供系统扩展的存储过程,其中有一些存储过程的命名以xp_开头,用于处理操作系统的文件. 一,判断文件是否存在 存储过程sys.xp_fileexist 用于 ...

  3. ubunt tftp服务器搭建

    默认安装的Ubuntu系统没有包含TFTP的服务端和客户端,可以通过命令行来下载安装,步骤如下: (1)安装客户端. root@ www.linuxidc.com:~# apt-get install ...

  4. golang GET 出现 x509: certificate signed by unknown authority

    我们编写一个Go程序来尝试与这个HTTPS server建立连接并通信. //gohttps/4-https/client1.gopackage main import (    "fmt& ...

  5. mysql 修改默认字符集为utf8

    MySQL 5.5, all you need is: [mysqld] character_set_client=utf8 character_set_server=utf8 collation_s ...

  6. Linux系统Go开发环境搭建

    Go 语言是由谷歌的科学家开发的,并开源的新语言,被誉为"21世纪的C语言",它的主要目标是将静态语言的安全性和高效性与动态语言的易开发性进行有机结合,达到完美平衡,从而使编程变得 ...

  7. Spring框架系列(二)之Bean的注解管理

    微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.Spring中的两种容器 在系列(一)中我们已经知道,Spring 是管理对象的容器,其中有 ...

  8. js中的各种“位置”——“top、clientTop、scrollTop、offsetTop……”,你知道多少

    当要做一些与位置相关的插件或效果的时候,像top.clientTop.scrollTop.offsetTop.scrollHeight.clientHeight.offsetParent...看到这么 ...

  9. Python print 输出到控制台 丢数据

    import xlrd import sys,time data = xlrd.open_workbook("C:\Users\Administrator\Desktop\\new1.xls ...

  10. Go语言学习_Win10下安装Go开发环境

    关于Go语言有多么值得学习,这里就不做介绍了,既然看了这篇文章,想必是对有学习意向. 这里是在Windows下安装Go环境,去中文社区的下载栏目,https://studygolang.com/dl ...