C#制作Windows service服务系列二--演示一个定期执行的windows服务及调试
来源:互联网 发布:java 国内书籍 编辑:程序博客网 时间:2024/06/05 16:31
系列一: 制作一个可安装、可启动、可停止、可卸载的windows service (downmoon 原创)
系列二:演示一个定期执行的windows服务及调试(downmoon )
系列三:windows service系列三--制作可控制界面的windows service
一、 经常有人问起如何让程序定期自动执行 ?
除了像系统任务和SQL JOB/DTS等都可以满足不同的用户需求外,这里演示了如何做一个简单的windows serivce的框架。主要的功能是按照预先设定的时间间隔来执行类似的操作,比如抓取网页,抓取天气预报,群发邮件等。
假定用户有如下代码需要定期自动执行:
- #region 获取内容
- /**//// <summary>
- /// 获取内容,by tony 2009.9,16
- /// 邀月(downmoon):3w@live.cn
- /// </summary>
- public void GetContentByMethods(bool isDelteOldFile)
- {
- System.Text.StringBuilder builder = new System.Text.StringBuilder();
- try
- {
- DeleteOldFile#region DeleteOldFile
- if (isDelteOldFile)
- {
- string path = Globals.BakPath;
- if (System.IO.Directory.Exists(path))
- {
- string[] strFiles = System.IO.Directory.GetFiles(path);
- foreach (string strFile in strFiles)
- {
- System.IO.File.Delete(strFile);
- }
- }
- }
- #endregion
- My Methods#region My Methods
- int tempCount = 0;
- string temp = "Operation_{0} was sucessfully executed at {1} by Operator_{2}!";
- string temp2 = string.Empty;
- string filename = Globals.CreateXMLDir(Globals.BakPath) + Globals.StrTempDate + ".txt";
- for (int k = 0; k < Globals.TopCount; k++)
- {
- temp2 = string.Empty;
- //此处从数据表中读取数据,做一些事情,比如发邮件,抓取网页内容等。
- temp2 = string.Format(temp, k, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), k) + "/r/n";
- builder.Append(temp2);
- tempCount++;
- }
- builder.Append("total [" + tempCount + "] records was executed this time!");
- SaveFileResult(filename, builder.ToString());
- #endregion
- }
- catch (Exception ex) { string s = ex.Message; }
- }
那么,只需要将以上代码放在windows service环境下,部署成windows service,即可定期执行
详细过程我就省略了! 看文后源码
说明:
1、SetupServer.bat ,双击可安装服务
2、unInstallServer.bat,双击可卸载服务
3、主要文件WSDemoByTime.exe
4、配置文件WSDemoByTime.exe.config(主要配置数量、间隔时间、数据连接等)
运行效果,这里只演示了生成一个基本的记录文件。见图;
二、如何调试windows服务(windows service)。
这里提供简单的处理过程:
假定,我们已经部署好了windows service,结果发现不能如我们想像的运行,除了像本系列所描述的记录日志外,还可以直接调试进程。
具体步骤见下图:
一、调试--附加到进程
二、设置断点,调试
三、如何修改windows service配置并生效?
请注意,windows service的配置文件一般形如XXX.exe.Config,在本文中是WSDemoByTime.exe.Config,这个配置文件必须与WSDemoByTime.exe文件一致,并且修改配置文件后,需要重新启动windows serice才能使配置生效。
最后,附上源码, 转载请注明出处,邀月 3w@live.cn 谢谢!
源码下载
- C#制作Windows service服务系列二--演示一个定期执行的windows服务及调试
- C#制作Windows service服务系列二--演示一个定期执行的windows服务及调试
- C#制作Windows service服务系列二--演示一个定期执行的windows服务及调试
- C#制作Windows service服务系列二--演示一个定期执行的windows服务及调试
- C#制作Windows service服务系列三--制作可控制界面的Windows服务(windows service)
- C#制作Windows service服务系列三--制作可控制界面的Windows服务(windows service)
- C#制作Windows service服务系列三--制作可控制界面的Windows服务(windows service)
- C#制作Windows service服务系列
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service
- C#制作Windows service服务系列三--制作可控制界面的Windows服务
- C#制作Windows service服务
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service(downmoon原创)
- Windows Service服务的调试
- 使用service定期执行一个服务
- 值得推荐的iPhone开发资源汇总(3)
- Oracle PL\SQL操作(一)
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service
- poj 2823 线段树求区间最值
- 递归
- C#制作Windows service服务系列二--演示一个定期执行的windows服务及调试
- Posting only possible in periods 2013/02 and 2013/01 in company code 0001
- 学习Hibernate
- C#制作Windows service服务系列三--制作可控制界面的Windows服务(windows service)
- Tomcat Remote Debug
- ffmpeg开发指南
- c++智能指针auto_ptr和shared_ptr
- SQL Server 2005数据表导出到Oracle的方案 .
- javascript 小技巧