zoukankan      html  css  js  c++  java
  • .net开发windows服务小结 (转发)

    .net开发windows服务小结

     
        今天学习了在.net下创建一个windows服务,总结一下学习心得。
        开发环境:visual studio 2012
     
    一、编写程序
      (1)创建一个空解决方法
      (2)添加一个控制台应用程序项目
      (3)添加一个Windows服务,如下所示:
     
      (4)右键 查看代码
      
      看到如下代码:
    复制代码
    public WindowsService()
    {
        InitializeComponent();
    }
    
    protected override void OnStart(string[] args)
    {
                
    }
    
    protected override void OnStop()
    {
                
    }
    复制代码

      其中,OnStart方法在 启动服务时执行;OnStop方法在 停止服务时执行;还有两个重载方法:OnPause、OnContinue,分别在 暂停服务时执行、恢复服务时执行;它们对应于下图所示的操作:

      

      (5)添加代码:  

    复制代码
    private Thread timerThread;
    /// <summary>
    /// 启动服务时执行
    /// </summary>
    /// <param name="args"></param>
    protected override void OnStart(string[] args)
    {
        File.AppendAllText("D:\1.txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":windows服务开始工作!
    ", Encoding.Default);
        timerThread = new Thread(new ThreadStart(Start));
        timerThread.Start();
    }
    
    /// <summary>
    /// 停止服务时执行
    /// </summary>
    protected override void OnStop()
    {
        timerThread.Abort();
        File.AppendAllText("D:\1.txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":windows服务结束工作!", Encoding.Default);
    }
    
    private void Start()
    {
        while (true)
        {
            using (StreamWriter writer = new StreamWriter("D:\1.txt",true,Encoding.Default))
            {
                writer.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":每十秒钟输出一次!");
            }
            Thread.Sleep(10 * 1000);
        }
    }
    复制代码

      (6)安装程序,设置属性

      在设计器中添加安装程序

      

        会生成一个ProjectInstaller.cs文件,如下图所示:

        

        然后需要做两件事情:

          ①设置serviceProcessInstaller1控件的Account属性为“LocalSystem”

          ②设置serviceInstaller1组件的StartType属性为Automatic,把服务设置为自动启动

      (7)启动服务

        打开vs的开发人员命令提示 工具 以管理员身份运行

        

        执行如下所示命令:

        

        ①进入到项目所在文件夹,并进入inDebug路径下

        ②安装服务命令:installutil ConsoleApplication.exe,然后就可以在服务列表中看到我们启动的服务:

        

        卸载服务的命令是:installutil /u ConsoleApplication.exe

        当我们修改代码后,需要把服务先卸载,才能重新生成成功

        ③启动服务

          启动服务后,等一会儿再停止服务,然后我们打开D盘下的1.txt文档,可以看到下图所示的结果:

        

    二、调试

      在服务运行的状态下,我们找到菜单栏,调试——>附加到进程

      

      注意勾选“显示所有用户的进程”,选项,找到我们的进程,点击附加,然后在程序中添加断点,就可以调试程序了!

      

  • 相关阅读:
    C++-蓝桥杯-小数第n位[除法模拟]
    C++-蓝桥杯-合成植物[并查集][模板题]
    Overleaf操作
    三维向量差积,以及应用
    C++-蓝桥杯-分考场[2017真题][搜索][无向图染色]
    C++-POJ1094-Sorting It All Out[拓扑排序][邻接矩阵]
    C++-LUOGU1059-明明的随机数[堆排序]
    C++-快速排序[STL][快速排序][并归排序][堆排序]
    C++-蓝桥杯-波动数组[2014真题][DP优化]
    C++-蓝桥杯-[T1~T3][结果填空题][2015真题][水题]
  • 原文地址:https://www.cnblogs.com/richard88/p/4597415.html
Copyright © 2011-2022 走看看