正文实例讲述了C#经过创办Windows服务运维程序的主意。分享给我们供大家参考,具体如下:

一. 新建八个Windows服务应用程序

1. 新建一个Windows服务应用程序

    制造项目——》Visual C# 左边的”+”——》Windows ——》Windows
服务(左侧模板)——》输入名称,鲜明制造项目

创建项目——》Visual C# 右边的”+”——》Windows ——》Windows
服务(左侧模板)——》输入名称,鲜明创设项目

 

二.
安装Windows服务的属性
(Windows服务里未有窗体,所以点击左侧设计器里空荡荡的地点就能够在左臂属性栏里观看属性)

2.
装置Windows服务的习性(Windows服务里从未窗体,所以点击左边设计器里空荡荡的地方就能够在左侧属性栏里看到属性)

此地属性是决定服务器是还是不是足以告1段落,暂停,继续等等的操作。依照须求选用。属性的名字已经很明亮了,不供给再做太多解释。作者是把
CanPauseAndContinue 和 CanShutDown 设置为 true。

   
这里属性是控战胜务器是或不是足以告1段落,暂停,继续等等的操作。依据须要选择。属性的名字曾经很精通了,无需再做太多解释。笔者是把
CanPauseAndContinue 和 CanShutDown 设置为 true。

ServiceName 属性是那一个服务的之后再服务管理器中显得的名目。

    ServiceName 属性是其壹服务的之后再服务管理器中显示的称谓。

三. 装置Windows服务的安装程序

 

永利皇宫登录网址 ,在统一筹算窗口里右键单击鼠标,选取“增添安装程序”。那样就可以加多ProjectInstaller.cs 以及serviceInstaller一 和 serviceProcessInstaller1那三个对象都有一个相比首要的习性。

3. 装置Windows服务的安装程序

单击 serviceInstaller一 在左手的属性窗口里有 StartType
属性,钦命的是开发银行服务的方法和岁月。假使想让服务开机运行,并直接运维,将那性子格设置为
Automatic。

    在安插窗口里右键单击鼠标,选取“增加安装程序”。那样就可以加多ProjectInstaller.cs 以及serviceInstaller一 和 serviceProcessInstaller一那多少个目的都有二个比较重大的属性。

单击 serviceProcessInstaller一 在右臂的特性窗口里有 Account
属性,钦点的是运作此服务的帐户类型。要是想让具备用户都使用这几个服务,将这性子格设置为
LocalService

    单击 serviceInstaller壹 在左侧的质量窗口里有 StartType
属性,内定的是开发银行服务的格局和岁月。借使想让服务开机运转,并直接运行,将那些天性设置为
Automatic。

当前具有的创制及品质设置职业就终止了。上边开始开始展览代码编写专门的学业。

    单击 serviceProcessInstaller一 在左侧的习性窗口里有 Account
属性,钦命的是运营此服务的帐户类型。借使想让具有用户都应用那几个服务,将那几个特性设置为
Local瑟维斯

肆. 内需用沙漏来按时检测程序是或不是运营,因而大家要追加一个提姆er控件。

 

开发代码窗口。

    近日具备的创建及品质设置职业就得了了。下边伊始开始展览代码编写专门的工作。

首先,增加 using System.Timers; 引用。

 

这里有OnStart(string[] args)和OnStop()多少个函数。看名就能够猜到其意义,OnStart
就是劳务运营时运维的代码。OnStop正是劳动甘休时运维的代码。

肆.
亟待用停车计时器来定期质量评定程序是不是运转,因而咱们要加进3个提姆er控件。

我们在OnStart里成立提姆er控件,并安装其质量和充实事件。

    张开代码窗口。  

System.Timers.Timer t = new System.Timers.Timer(1000); //这里的1000指的是Timer的时间间隔为1000毫秒
t.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Click); //Timer_Click是到达时间的时候执行事件的函数
t.AutoReset = true; //设置是执行一次(false)还是一直执行(true)
t.Enabled = true; //是否执行System.Timers.Timer.Elapsed事件

    首先,增加 using System.Timers; 引用。

这么,当服务运作后,每一秒都将实践 Timer_Click 函数

    这里有OnStart(string[] args)和OnStop()多个函数。一孔之见,OnStart
正是劳动运营时运转的代码。OnStop就是服务停止时运转的代码。

5. 编写 Timer_Click 函数

    大家在OnStart里创制Timer控件,并设置其特性和充实事件。

private void Timer_Click(Object sender, ElapsedEventArgs e)
{
  Process[] localByName = Process.GetProcessesByName("exe");
  if (!IsExistProcess("exe")) //如果得到的进程数是0, 那么说明程序未启动,需要启动程序
  {
    Process.Start("exe"); //启动程序的路径
  }
  else
  {
    //如果程序已经启动,则执行这一部分代码
  }
}
private bool IsExistProcess(string processName)
{
  Process[] MyProcesses = Process.GetProcesses();
  foreach (Process MyProcess in MyProcesses)
  {
    if (MyProcess.ProcessName.CompareTo(processName) == 0)
    {
      return true;
    }
  }
  return false;
}

    System.Timers.Timer t = new System.Timers.Timer(一千);
//这里的一千指的是Timer的时刻间隔为一千皮秒

当今享有代码的专门的学业也成就了。

    t.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Click);
//Timer_Click是达到时间的时候实践事件的函数

6. 生成Windows服务的应用程序

    t.AutoReset = true; //设置是推行三回(false)依旧直接进行(true)

单击 生成 ——》生成 WindowsService1
这时,在 D:\Soft\WindowsService1\bin\Debug 文件夹里会生成
WindowsService一.exe 文本。
1经成功就可以实施下一步。

    t.Enabled = true; //是还是不是施行System.Timers.Timer.Elapsed事件

7. 安装服务

 

永利皇宫登录网址 1

    那样,当服务运作后,每一秒都将实施 Timer_Click 函数

永利皇宫登录网址 2

 

永利皇宫登录网址 3

5. 编写 Timer_Click 函数

serviceInstaller一属性中安装:

        private void Timer_Click(Object sender, ElapsedEventArgs e)
        {

Description(系统服务的讲述)
DisplayName (系统服务中显得的称呼)
ServiceName(系统事件查看器里的应用程序事件中来自名称)

            Process[] localByName =
Process.GetProcessesByName(“exe”);
            if (!IsExistProcess(“exe”)) //假如得到的进程数是0,
那么注解程序未运行,须求运行程序
            {
                Process.Start(“exe”); //运维程序的渠道
            }

serviceProcessInstaller1属性设置:Account 下拉设置成 LocalSystem

            else

服务与应用程序区别样,不可能由此在Visual
Studio里运转,必须接纳安装软件安装到Windows 服务里去。完了地点八个截图的操作后,继续上边注册和卸载操作。

            {

以此装置软件在 C:\WINDOWS\Microsoft.NET\Framework\v四.0.30319这些文件夹里

                //就算程序已经运转,则施行这一片段代码

程序名叫 InstallUtil.exe
要运维那个程序须求动用 command “命令提示符” 程序。

            }
        }

单击初步——》运营——》输入”cmd”单击鲜明
输入cd C:\WINDOWS\Microsoft.NET\Framework\v四.0.3031九 回车
进入这一个文件夹
输入InstallUtil
D:\Soft\WindowsService1\bin\Debug\WindowsService1.exe 即InstallUtil

        private bool IsExistProcess(string processName)
        {

  • 服务.exe文件的地方 回车。那时服务就设置收尾了。
    要是想卸载这一个服务也是用那么些软件。
    输入InstallUtil
    D:\Soft\WindowsService1\bin\Debug\WindowsService一.exe -u
    即”InstallUtil + 服务.exe文件的地址 – u” 回车。那时服务就卸载达成了。
    本来大家今后没有需求卸载那些服务。现在只差最后一步达成我们的服从了。

            Process[] MyProcesses = Process.GetProcesses();
            foreach (Process MyProcess in MyProcesses)
            {
                if (MyProcess.ProcessName.CompareTo(processName) == 0)
                {
                    return true;

八. 起步服务

                }
            }
            return false;
        }

劳动安装成功未来,并不曾运行,大家要求在服务管理器中运营它,并且只要运维的程序是带窗体的顺序,还必要修改一下服务的品质。

    今后具备代码的做事也完结了。

进去调控面板——》处理工科具——》服务
展开服务处理器。或然运维——–>cmd——->services.msc—本地服务设置

 

网站地图xml地图