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

.net开发windows服务小结 (转发)

时间:2015-06-24 14:20:32      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

    今天学习了在.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服务开始工作!\r\n", 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的开发人员命令提示 工具 以管理员身份运行

    技术分享

    执行如下所示命令:

    技术分享

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

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

    技术分享

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

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

    ③启动服务

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

    技术分享

 

二、调试

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

  技术分享

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

  技术分享

.net开发windows服务小结 (转发)

标签:

原文地址:http://www.cnblogs.com/richard88/p/4597415.html

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