window service 学习之路(一)【学习笔记】

以前做的控制台程序或者WIN FORM程序,做完之后都需要自己手工去运行,特别是一些需要放在服务器上的程序,服务器重启后不能自动运行。偶尔发现C# 里面有可以把这些程序做成服务的形式,把这些服务设成自动启动,就能达到重启后程序自已去运行,不用一个个手工启动了。

       下面正式开始,这是我跟着MSDN上做的一个例子,做为入门程序。

       1、打开VS 2010,新建项目“Windows 服务”,并将项目命名为 MyNewService单击确定。具体如下图:

2、解决方案资源管理器中,右击“Service1.cs”,并选择视图设计器

3、工具箱组件选项卡,将EventLog组件拖到设计器中。

4、解决方案资源管理器中,右击“Service1.cs”,并选择查看代码

5、在 Service1.cs 添加或编辑构造函数以定义一个自定义事件日志。具体如下图:

        public Service1()
        {
            InitializeComponent();
            if (!System.Diagnostics.EventLog.SourceExists("MySource"))
            {
                System.Diagnostics.EventLog.CreateEventSource(
                    "MySource", "MyNewLog");
            }
            eventLog1.Source = "MySource";
            eventLog1.Log = "MyNewLog";

        }

6、在代码编辑器中,找到创建项目时已自动重写的OnStart方法,然后编写代码来确定当服务开始运行时发生的情况:

       protected override void OnStart(string[] args)
        {
            eventLog1.WriteEntry("In OnStart");
        }

7、在代码编辑器中,从方法名称下拉列表中选择OnStop方法,该过程在创建项目时已自动重写。编写代码以确定服务停止时发生的情况:

       protected override void OnStop()
        {
            eventLog1.WriteEntry("In onStop.");
        }

8、同理,写一个OnContinue()方法,还可以重写OnPauseOnShutdown方法来定义对组件的其他处理

       protected override void OnContinue()
        {
            eventLog1.WriteEntry("In OnContinue.");
        }

到现在为止,服务的代码部分全部完成,接下来要做的是为服务创建安装程序

1、解决方案资源管理器中,右击“Service1.cs”,并选择视图设计器

2、视图设计器具有焦点时,右击空白位置然后单击添加安装程序

3、默认情况下,向您的项目添加一个包含两个安装程序的组件类。将该组件命名为ProjectInstaller,它包含的安装程序分别是服务的安装程序(ServiceInstaller1)和服务关联进程的安装程序(ServiceProcessInstaller1

4、“ProjectInstaller”设计视图中,单击“ServiceInstaller1”“serviceInstaller1”

5、属性窗口中,确保ServiceName属性已设置为 MyNewService,StartType属性设置为Automatic。

6、在设计器中单击“ServiceProcessInstaller1”(对于 Visual Basic项目)或“serviceProcessInstaller1”(对于 Visual C#项目)。Account属性设置为LocalSystem

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值