zoukankan      html  css  js  c++  java
  • 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 控件

  • 相关阅读:
    SpringBoot 官方文档中文版
    SpringBoot 官方文档中文版
    SpringBoot 官方文档中文版
    RK 打包脚本 make_ext4fs system.img
    Linux安装docker-compose
    Linux使用docker安装Jenkins 并进行jar包发布
    JAVA把InputStream 转 字节数组(byte[])
    SpringBoot简单整合分布式任务调度平台(XXL-JOB)
    SpringBoot项目bootstrap.yml配置文件不加载
    JAVA中Base64和byte数组(byte[]) 相互转换
  • 原文地址:https://www.cnblogs.com/sjqq/p/6374393.html
Copyright © 2011-2022 走看看