C# Asp.net 制作一个windows服务

 那下面就来说说如何制作一个服务来 实现开机自动启动,每隔一段时间向student表中插入数据。 

    步骤:  1)   新建项目 ---> Windows 服务

     2) 拖放Times控件

 

  工具箱中 拖放一个 Time控件 (是System.Times 空间下的(要自己添加到工具箱中的,默认没有),不是System.Form.Windows.Time下的。这而不能引用错了,否则会服务不能正确运行.具体为什么,有待研究)

 

  3) 右击空白处,点击安装程序

 

紧接着会出现

,然后设置它的 Account 值为 LocalSystem

将 serviceInstaller1 的statrtype=Automatic (开机自动启动)

4) 双击Times控件,开始写服务要执行的代码 (向student表中隔一秒插入一条数据)     

private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)

         {
             try
             {
                 //数据库操作
                 string  ConString = "server=127.0.0.1;database=student;server=127.0.0.1;database=MySqlData;Integrated Security=SSPI" ;
 
                 SqlConnection ConStudent = new  SqlConnection(ConString);
 
                 SqlCommand Cmd = new  SqlCommand( "insert into student (nameid) values ('3')" , ConStudent);
 
                 ConStudent.Open();
                 Cmd.ExecuteNonQuery();
                 ConStudent.Close();
             }
             catch  (Exception ee)
             {
 
 
             }
         }
#region  服务启动后要执行的数据库操作
 
  protected  override  void  OnStart( string [] args)
         {
             // TODO: 在此处添加代码以启动服务。
             try
             {
                 timer1.Start();
             }
             catch
             {
              
 
             }
         }
 
 
 
#endregion

然后 debug 或者 Release都行。

5)  通过 Windows 文件夹下 Microsoft.net下的framework  文件夹中的 installutil.exe来向系统注册服务。

      最简单方法:将installutil.exe拷贝到刚才debug或者Release文件夹下,直接将刚才的程序拖放上来就可以注册了。

      (注:1.通过dos下注册的,有可能会提示文件找不到,那就把intallutil.exe拷贝到相应文件夹内即可

             2.dos下注册为  intallunit.exe   目标文件的完整路径

             3.服务不能单独编译,但是可以通过 VS 的附加进程编译来调试! 

       ) 

总结: 调试的时候发现2个问题

    1.installutil.exe无法注册服务,提示找不到文件.

       解决方案:  installutil.exe  拷贝到 目标 exe文件夹中

    2. 服务启动了,但是没有 执行相应的操作。

      解决方案:   Times 控件换为 System.Times下的。  (需要另外添加)

                      默认的是 Windows.form.Times 控件

转载于:https://www.cnblogs.com/sjqq/p/6374393.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值