windows服务定时任务

其实定时任务时不时会碰到,只不过解决方案也不是只有一个,网上也有很多文章,但是没有一篇说得很清楚,尤其是安装环节,今天就着重说一下安装,

其他步骤带过,C#开发windows服务,开发,安装,调试

1. 添加安装程序  (找的其他博客的配图)

windows服务定时任务windows服务定时任务

之后我们可以看到上图,自动为我们创建了ProjectInstaller.cs以及2个安装的组件。

2)修改安装服务名

右键serviceInsraller1,选择属性,将ServiceName的值改为ServiceTest。

windows服务定时任务

3)修改安装权限

右键serviceProcessInsraller1,选择属性,将Account的值改为LocalSystem。

windows服务定时任务

2.业务代码(读取配置文件里面的所有节点,然后开启多个定时任务)app.config配置如下:

windows服务定时任务

protected override void OnStart(string[] args)
{ NameValueCollection urls = ConfigurationManager.AppSettings; List<Timer> timers = new List<Timer> ();
int i =;
foreach (var item in urls)
{
try
{
string values = urls["url" + i];
string[] strs = values.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
string url = strs[];
int interval = Convert.ToInt32(strs[]);
Timer temp = new Timer();
temp.AutoReset = true;
temp.Interval = interval;
temp.Enabled = true;
temp.Elapsed += new ElapsedEventHandler((object sender, System.Timers.ElapsedEventArgs e) =>
{
try
{
Http.Get(url);
}
catch (Exception ex)
{
Log.LogResult(ex.StackTrace);
} });
temp.Start(); timers.Add(temp);
}
catch (Exception ex)
{ Log.LogResult("创建timer失败:"+ex.StackTrace);
}
i++;
}
}

3. 安装

如果项目是4.0的,那么要去  C:\Windows\Microsoft.NET\Framework\v4.0.30319    (V4.0开头的就行) 路径下面找到 InstallUtil.exe

项目如果是2.0的,那么找 C:\Windows\Microsoft.NET\Framework\v2.0.50727  (v2.0 开头就行)  路径下面找到 InstallUtil.exe

要将服务安装到哪台机就要去哪台机里面找,没有框架就装框架,如果复制本地的文件到远程服务器使用是不行的,微软有安全验证

将文件installUtil.exe 复制到  Debug目录下面

准备工作做好,开始安装: 以管理员身份打开cmd,然后进到Debug目录里面,先试试installutil.exe 有没有用

windows服务定时任务

出现类似页面就说明有用,

执行命令 installutil   serviceTest.exe(服务对应程序名称debug下面的 .exe )

如果出现安装成功字眼,并且没有出现错误字眼,说明服务安装成功

然后去服务里面找到这个服务

windows服务定时任务

4.调试   (调试 => 附加到进程 )

windows服务无法直接运行调试,跟着步骤来: 启动服务才能附加进程调试

windows服务定时任务

如果勾都打上了还找不到,就关闭这个窗口稍微等等再来一次,准能找到

然后就可以愉快的加断点调试了

windows服务定时任务

如果改了代码,需要先停止服务 ,然后重新生成项目,再启动,然后重新附加进程

上一篇:P4147 玉蟾宫


下一篇:Oracle 添加主键和索引