zoukankan      html  css  js  c++  java
  • C#编写Windows 服务

          Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。

         使用Microsoft Visual Studio2012可以很方便的创建一个Windows服务,本例实现一个向D盘的txt文件里,写入系统时间的Windows服务。

         新建一个Windows Services工程:

     

    工程创建好之后,默认会有一个Services1.cs文件,删掉此文件,重新添加一个新Item

    右击新添加的这个文件,选择View code,可以看到,有两个函数 OnStart和OnStop,OnStart函数在启动服务时执行,OnStop函数在停止服务时执行。

    这两个函数的代码如下:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Diagnostics;
     6 using System.Linq;
     7 using System.ServiceProcess;
     8 using System.Text;
     9 using System.Threading.Tasks;
    10 using System.IO;
    11 
    12 namespace MyFirstWindowsService
    13 {
    14     partial class MyWindowsService : ServiceBase
    15     {
    16         public MyWindowsService()
    17         {
    18             InitializeComponent();
    19         }
    20 
    21         protected override void OnStart(string[] args)
    22         {
    23             // TODO: Add code here to start your service.
    24             FileStream fileStream = new FileStream(@"D:MyWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
    25 
    26             StreamWriter streamWriter = new StreamWriter(fileStream);
    27 
    28             streamWriter.BaseStream.Seek(0, SeekOrigin.End);
    29 
    30             streamWriter.WriteLine("My service started" + DateTime.Now.ToString() + "
    ");
    31 
    32             streamWriter.Flush();
    33 
    34             streamWriter.Close();
    35 
    36             fileStream.Close();
    37         }
    38 
    39         protected override void OnStop()
    40         {
    41             // TODO: Add code here to perform any tear-down necessary to stop your service.
    42             FileStream fileStream = new FileStream(@"D:MyWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
    43 
    44             StreamWriter streamWriter = new StreamWriter(fileStream);
    45 
    46             streamWriter.BaseStream.Seek(0, SeekOrigin.End);
    47 
    48             streamWriter.WriteLine("My service stopped " + DateTime.Now.ToString() + "
    ");
    49 
    50             streamWriter.Flush();
    51 
    52             streamWriter.Close();
    53 
    54             fileStream.Close();
    55         }
    56     }
    57 }

    之后需要新建一个安装组件MyWindowsServiceProjectInstaller(右击MyWindowsService.cs这个文件选择view desiner,然后选择Add Installer),需要将MyFirstWindowsServiceProcessInstaller的account属性设置为localservice.

    编写批处理文件:

     安装服务批处理:

    1 %SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe C:Usersgaoja1DesktopMyWindowsServiceMyFirstWindowsServiceinDebugMyFirstWindowsService.exe
    2 Net Start ServiceTest
    3 sc config ServiceTest start= auto

    卸载服务批处理:

    %SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe /u C:Usersgaoja1DesktopMyWindowsServiceMyFirstWindowsServiceinDebugMyFirstWindowsService.exe

    服务安装好之后:

    服务启动之后可以在D盘看到一个txt的文件,里面记录了服务的启动时间.

  • 相关阅读:
    关于Jonathan S. Weissman与RIT(罗切斯特理工学院,位于纽约)
    jQuery获取元素值以及设置元素值总结
    页面跳转
    Node JS复制文件
    js获取当前日期并格式yyy-MM-dd
    Json文件删除元素
    HTML页面间传值
    计算机实用但冷门快捷键
    NodejS---require的机制
    Node某个JS导出方法变量以及在其他地方引用的例子
  • 原文地址:https://www.cnblogs.com/GaoHuhu/p/3156989.html
Copyright © 2011-2022 走看看