C#创建windows服务并定时执行

摘要:
1、 创建窗口服务。1.创建新项目--˃选择Windows服务。
 一、创建window服务

1、新建项目-->选择Windows服务。默认生成文件包括Program.cs,Service1.cs

2、在XmlService.cs添加如下代码:
C#创建windows服务并定时执行第1张C#创建windows服务并定时执行第2张
 public partial class XmlService : ServiceBase
    {
        #region 属性定义
        /// <summary>
        /// 定时器
        /// </summary>
        Timer _Timer;
        #endregion

        public XmlService()
        {
            InitializeComponent();
            
        }

        
        void _Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            CommonHelper ch = new CommonHelper();
            string strxml = ch.GetXML(DBHelper.GetXmlUrl());
            Loger.Info("时间:"+DateTime.Now+";"+strxml);
            EventLog.WriteEntry(strxml);
        }

        /// <summary>
        /// 启动服务,达到间隔时间
        /// </summary>
        protected override void OnStart(string[] args)
        {
            Loger.Info("window服务已经启动!"+DateTime.Now);
            _Timer = new System.Timers.Timer();

            _Timer.Interval = Convert.ToDouble(Common.DBHelper.GetTime()) * 1000;  //设置计时器事件间隔执行时间
            //_Timer.Interval = 3*60 * 1000;
            _Timer.Elapsed += new System.Timers.ElapsedEventHandler(_Timer_Elapsed);
            _Timer.AutoReset = true;
            _Timer.Enabled = true;
        }
        //停止服务
        protected override void OnStop()
        {
            this._Timer.Enabled = false;
            Loger.Info("window服务已经停止!");
        }
    }
View Code
 
二、添加window服务安装程序

1、打开Service1.cs【设计】页面,点击右键,选择【添加安装程序】,会出现serviceInstaller1和serviceProcessInstaller1两个组件

2、将serviceProcessInstaller1的Account属性设为【LocalSystem】, serviceInstaller1的StartType属性设为【Automatic】,ServiceName属性可设置服务名称,此后在【管理工具】--》【服务】中即显示此名称

3、ProjectInstaller.cs文件,在安装服务后一般还需手动启动(即使上述StartType属性设为【Automatic】),可在ProjectInstaller.cs添加如下代码实现安装后自动启动

    public ProjectInstaller()

        {

            InitializeComponent();

            this.Committed += new InstallEventHandler(ProjectInstaller_Committed);   

        }

 

        private void ProjectInstaller_Committed(object sender, InstallEventArgs e)

        {

            //参数为服务的名字

            System.ServiceProcess.ServiceController controller = new System.ServiceProcess.ServiceController("服务名称");

            controller.Start();

        }   

 

三、安装、卸载window服务

1、输入cmd(命令行),输入cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319,2.0为cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

2、安装服务(项目生成的exe文件路径)

  InstallUtil "E:\WindowsService1\bin\Debug\WindowsService1.exe"

3、卸载服务

  InstallUtil  /u "E:\WindowsService1\bin\Debug\WindowsService1.exe"

四、查看window服务

控制面板-->管理工具-->服务,可在此手动启动,停止服务

五、调试window服务

1、通过【事件查看器】查看

2、直接在程序中调试(菜单-->调试-->附加进程-->服务名(这里的服务名是项目名称,不是ServiceName属性自定义的名称,所以建议自定义名称和项目名称保持一致,另外需勾选【显示所有用户的进程】才能看到服务名)-->附加

3. 在程序中打断点调试即可,另外调试服务时服务必须已启动(管理工具-->服务)

免责声明:文章转载自《C#创建windows服务并定时执行》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JSTL与EL表达式(为空判断)JSON格式转换成XML格式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

注册支付宝沙箱并测试支付宝扫码连接

2.创建新的支付宝应用程序2.1下载支付宝生成软件密钥#访问“支付宝开发平台”登录并访问开发者中心https://open.alipay.com/platform/home.htm#您可以参考“计算机网站支付”来熟悉计算机支付的整个流程https://docs.open.alipay.com/270/105899/2.1步骤1:创建应用程序(此处使用沙盒环境...

WPF知识点全攻略13- 绘图

行&lt;线条X1=“10”Y1=“100”X2=“260”Y2=“100“Stroke=“黑色”StrokeDashArray=“5”StrokeThickness=“2”&gt;线冲程&gt;矩形&lt;矩形边距=“5”笔划=“黑色”高度=“100”宽度=“100“&gt;&lt;&书信电报,...

WPF绑定功能常用属性介绍

这是实质上是System.Windows.Data.BindingMode.OneWay绑定的一种简化形式,它在源值不更改的情况下提供更好的性能。确定依赖属性绑定在默认情况下是单向还是双向的编程方法是:使用System.Windows.DependencyProperty.GetMetadata获取属性的属性元数据,然后检查System.Windows.Fr...

bootstrap删除模态框弹出并询问是否删除【通用删除模态框】

divclass=“模态对话框”&gt;divclass=“modal header”&gt;spanaria hidden=“true”&gt;h4class=“模态标题”&gt;divclass=“modal body”&gt;divclass=“模态页脚”&gt;...

【Lua】table表删除指定元素 (转)

删除表时,会找到一个表。remove(table,idx)方法用于根据表中的索引进行删除。当前要求是根据值进行删除。quick-x中还有一个相应的表方法封装:1.根据表中的值删除--删除表中的指定元素(而不是根据索引)--@paramarray要操作的容器--@paramvalue删除值--@paramremo...

PNETLab模拟器部署及使用配置

为了提高虚拟网络的仿真程度,您可以运行IOL(Cisco IOSonLinux)、Dynamips、Quem和其他图像来支持在线实验拓扑下载。...