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文档,可以看到下图所示的结果:

        

    二、调试

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

      

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

      

  • 相关阅读:
    PAT 1010. 一元多项式求导 (25)
    PAT 1009. 说反话 (20) JAVA
    PAT 1009. 说反话 (20)
    PAT 1007. 素数对猜想 (20)
    POJ 2752 Seek the Name, Seek the Fame KMP
    POJ 2406 Power Strings KMP
    ZOJ3811 Untrusted Patrol
    Codeforces Round #265 (Div. 2) 题解
    Topcoder SRM632 DIV2 解题报告
    Topcoder SRM631 DIV2 解题报告
  • 原文地址:https://www.cnblogs.com/richard88/p/4597415.html
Copyright © 2011-2022 走看看