• C#创建Windows服务入门图解(VS2010)



    之前做的一个项目里有人用Service的方法定时获取远程数据,很犀利,我感觉还是挺有用的。所以今天我也开荒了一下用C#开发Windows服务,正规的体验了一下开发流程。下面就是我做的最入门的例子,MSDN上有类似的教程,但MSDN漏了一些比较重要的步骤,所以大家请看我开荒成功的版本:

    首先,在VS2010里建立一个Windows Service项目:

    它会提供我们一个默认的Serivce1,可以删掉,换成自己的。比如Fucker.cs,当然,你得把Program.cs里调用的语句换掉:

    static void Main()
    {
        ServiceBase[] ServicesToRun;
        ServicesToRun = new ServiceBase[]
    	{ 
    		new Fucker() 
    	};
        ServiceBase.Run(ServicesToRun);
    }

    创建Fucker.cs后,打开Design视图,从工具箱里拖一个EventLog进来,这个是在Components分类里的。注意,你不能用Windows Form的控件了,不然编译会爆。如果你的Service想用UI的方式弹出消息,只能在build的文件夹里再放一个开发好的专门弹东西的exe了。。。

     

    现在,你就可以码这个Service了。先在构造函数里加几句话:

    public Fucker()
    {
        InitializeComponent();
    
        if (!System.Diagnostics.EventLog.SourceExists("TheFuckers"))
        {
            System.Diagnostics.EventLog.CreateEventSource("TheFuckers", "FuckerLog");
        }
        evt.Source = "TheFuckers";
        evt.Log = "FuckerLog";
    }

    首先判断系统的EventLog里有木有“TheFuckers”这个分类,如果木有,就建一个。后面那个参数“FuckerLog”是Log的名称。接下来我们要在服务启动和停止的时候写日志:

    protected override void OnStart(string[] args)
    {
        evt.WriteEntry("Oh Fuck!");
    }
    
    protected override void OnStop()
    {
        evt.WriteEntry("Oh Shit!");
    }

    现在,Fucker的服务就码完了。我们需要添加一个很重要的installer,不然没法安装。方法是在Fucker的设计视图上点右键,选Add Installer:

    然后我们要码一下ProjectInstaller.Designer.cs,注意,是Designer.cs,设计器生成的那个代码文件,而不是设计视图上点右键出来的那个ProjectInstaller类。

    首先要去掉用户名和密码,不然安装的时候会问你要,它会用这个帐号去启动服务,如果你的帐号没有权限,服务是要安装失败的。注释掉下面的代码:

    // this.serviceProcessInstaller1.Password = null;
    // this.serviceProcessInstaller1.Username = null;

    然后换成LocalSystem身份启动服务:

    this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;

    如果要更改服务的名称(就是在服务管理器里看到的名字)可以改ServiceName属性: 

    this.serviceInstaller1.ServiceName = "Fucker";

    现在代码部分已经码完了,最后要在项目属性里改一个Start Up的选项:

    然后编译一下,成功之后会在bin文件夹生成一个exe。

    然后在VS2010附送的命令行工具里用installutil.exe就可以安装了:

    D:DotNetProjectsTestLabShowFuckinDebug>installutil.exe ShowFuck.exe

    安装成功会显示消息:

     

    现在去Windows的服务管理器里就能够看到我们的服务了:

    试试启动再停止服务,我们就可以在事件日志里看见Fuck了,哈哈。


  • 相关阅读:
    数据结构实验2-迷宫
    离散实验4
    关系代数中的除法运算
    数据库中什么叫象集
    (转)汇编-补码
    2014022201
    20140222
    2014022101
    代码20140221
    代码20140215
  • 原文地址:https://www.cnblogs.com/dwuge/p/5294748.html
Copyright © 2020-2023  润新知