概述
1.创建WindowsService
2.Service1添加安装程序
设计->右键->添加安装程序;
3.ProjectInstaller设置属性
serviceInstaller1
Modifiers:public;
ServiceName:Service1(你的服务名称);
StartType:Automatic;
serviceProcessInstaller1
Account:LocalSystem;(默认User的情况下Start.bat启动后需要输入账号密码)
4.Service1代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Timers;
namespace Service1
{
public partial class Service1 : ServiceBase
{
#region 属性
private System.Timers.Timer timer;
private BackgroundWorker worker;
#endregion
public Service1()
{
InitializeComponent();
}
/// 启动服务
/// <summary>
/// 启动服务
/// </summary>
/// <param name="args"></param>
protected override void OnStart(string[] args)
{
Init();
}
/// 初始化服务
/// <summary>
/// 初始化服务
/// </summary>
private void Init()
{
worker = new BackgroundWorker();
worker.DoWork+=new DoWorkEventHandler(worker_DoWork);
timer = new System.Timers.Timer();
timer.Interval = 60 * 1000;//1分钟执行一次//1000*60*60 1小时//1000*60*60*24 1天
timer.Elapsed+=new ElapsedEventHandler(timer_Elapsed);
timer.Enabled = false;
timer.Start();
}
/// 定时执行
/// <summary>
/// 定时执行
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
void timer_Elapsed(object sender,ElapsedEventArgs args)
{
if (!worker.IsBusy)
{
worker.RunWorkerAsync();
}
}
/// 后台执行进程
/// <summary>
/// 后台执行进程
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
void worker_DoWork(object sender, DoWorkEventArgs args)
{
try
{
MainFunction();
}
catch (Exception ex)
{
}
}
private void MainFunction()
{
//主要代码
}
/// 停止服务
/// <summary>
/// 停止服务
/// </summary>
protected override void OnStop()
{
timer.Stop();
}
}
}
5.配置文件
在项目中右键->添加新建项目->应用程序配置文件,默认名称App.config;
在文件中添加程序所需的框架,<ConnectionStrings>中添加数据库连接,<appSettings>中添加服务器IP;
(如果程序涉及调用SAP接口,需要在<appSettings>中添加destination)
6.调试
在Debug文件夹中启动start.bat,然后在vs中工具->附加到进程 找到服务名,添加后程序会执行到断点处,就可以调试了;
注意服务名是Service.exe,不是Service.vshost.exe。如果没有找到服务名,勾选显示所有用户的进程,就可以找到了;
(如果需要部署到服务器,只需要将Debug文件夹拷到相应的文件夹下,启动start.bat即可)
此外放上start.bat和stop.bat的代码:
start.bat
@ECHO off
cls
color 0A
ECHO 安装APP SERVER...
C:WINDOWSMicrosoft.NETFrameworkv2.0.50727InstallUtil.EXE Service1.exe
net start Service1
pause
EXIT
stop.bat
@ECHO off
cls
color 0A
ECHO 安装APP SERVER...
net stop Service1
C:WINDOWSMicrosoft.NETFrameworkv2.0.50727InstallUtil.EXE /u Service1.exe
pause
EXIT
最后
以上就是大胆星星为你收集整理的.net Service定时启动的全部内容,希望文章能够帮你解决.net Service定时启动所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复