Windows Services(以前被称为NT services)是在后台的Windows server 或workstation上运行的程序。在进行一些适当的设置以后,它们便可以在电脑重启之后自动开启,而无需进行人工干预。这同样适用于那些需要定期执行的长时间程序。
这里我将介绍一种Timer Windows Service,它使你只需简单地将一个assembly拖到适当的应用程序文件夹中便能够自动实现将不同的.NET组件插入其中。更确切地说,Timer Windows Service允许一些完成特定功能的组件定时运行。这在你需要频繁调用一个Web service以便获得天气、股票或新闻等信息或者在你经常需要对一个Web页面进行screen-scrape来汲取数据时会非常有用。你还可以用Timer Windows Service 来查看FTP站点上的新的普通文件(flat file)或者XML文档,以及成千上万个任务中的一个。这个可下载的程序包括三种执行这一任务的“可插入”组件:
Windows Service会对配置文件的改变进行监视,并且它会自动将新的assembly添加到处理过程中而无需重启机器。这种情况是可能的,因为每个自定义组件均实现了一个名为IService的接口,它定义了两个分别叫做StartTimer()和StopTimer()的方法。当配置文件改变以后,Windows Service会自动通过调用StopTimer()来终止所有组件的行为,并加载定义在配置文件中的适当的类型,然后调用每个对象的StartTimer()方法。该程序支持通过代理来调用远程程序及Web services、给每个控件提供可变计时器、自动记录事务日志、定制XML配置文件等等功能。
如果你想试用这个Timer Windows Service以及其它相关组件,你可以下载该MSI文件,运行它,在Control Panel中找到Services并启动名为EBCWindowsService的service。点此下载Timer Windows Service的完整代码及其相关组件。当然前提是你要安装了.NET Framework才行。
如果你编写了其他实现了Iservice的组件且可以插入到Timer Windows Service中,请写信与我联系dwahlin@xmlforasp.net。如果你的组件能够提供一种其他组件能够利用的service,我将会把它添加到安装包中并放到XML for ASP.NET Developers Web site里。
关于作者:
Dan Wahlin著有XML for ASP.NET Developers(Sams)一书,并创办了Wahlin Consulting公司,这家公司主要致力于XML和Web Service的咨询和培训。Dan也管理XML for ASP.NET Developers网站:www.XMLforASP.NET。要了解更多信息,请访问www.xmlforasp.net/content.asp?content=dan。