码迷,mamicode.com
首页 > Windows程序 > 详细

初识Windows服务 C#

时间:2015-07-13 23:46:16      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:

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#

标签:

原文地址:http://www.cnblogs.com/moonache/p/4644081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!