分类

链接

2016 年 11 月
 123456
78910111213
14151617181920
21222324252627
282930  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > .NET > 正文
共享办公室出租
讨论:关于ASP.NET用Timer定时执行问题
.NET 暂无评论 阅读(1,259)

别在ASP.NET里玩Timer,不然不是它死就是你被老板骂死。

IIS运行ASP.NET程序时,是有维护时间的,超过规定时间之后,没有客户端请求服务时,IIS会把这个ASP.NET程序暂停挂起的,这样,Timer就跟着不工作了。

我提供两种可行的解决方案:

1.用IIS实现也是可行的。放在Global.asax中启动Timer。去掉20分钟的回收规则。
只要网站经常有人访问,Timer是不会断掉的。

2.是写一个非常简单的WinForm程序,里面放上一个定时器控件,到了指定时间,就访问网站的指定页面,然后你把邮件发送业务在被访问的页面里处理就可以了。(WinForm桌面程序安装运行在与IIS同一服务器上,这样就保证了永久运行)
注意!根据我的经验,使用WinForm也有风险,我发现像金山毒霸或360这种杀毒软件自动升级时,烤,它们老是偷偷地杀掉WinForm工作进程,每次都得人工关闭后再打开软件一次,特别烦人。

3.另一种是Ajax,就是在你弄一个页面,里面放上js的定时器,不停地监视,等时间一到,直接Ajax向IIS请求那个发送邮件的页面。我个人偏向于用这种方法,这样只要在服务器上的浏览器运行这个JS定时器页面,那它就可以安安静静地工作了。
360和金山升级时,应该不能强制杀死IE的,所以,除非停电,不然应该是可以永久监视的

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:讨论:关于ASP.NET用Timer定时执行问题 | Bruce's Blog

发表评论

留言无头像?