关于网站后台定时执行任务

l-June 2017-07-24 04:04:17
各位大神 网站部署在阿里云虚拟空间后 每隔一天发送一封邮件,总是实现不了 如果时间改成1个小时一封邮件,则没问题。我代码写在global.asax 中,网站打开 运行Application_Start函数。 发邮件写在了SendEmail方法中。最后防止IIS回收 在Application_End中写了防止应用程序池自动回收问题的代码
...全文
697 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujian098 2017-09-11
  • 打赏
  • 举报
回复
引用 11 楼 sp1234 的回复:
asp.net 网站代码“防止回收”或者有人说什么“拉起”,是个笑话。网站随时会重启。你的网站是乏人问津所以你不知道,要是一个大网站,经常会重启asp.net 应用。 来看看你的问题就会发现,没人用这个网站,所以才出现这个问题。但凡有人经常,或者你在某个桌面或者windows服务里边定时去访问一下网站,它就不会显得无人问津。
云服务器可能重启的机会更多 因为里面放了无数的网站
ying1234 2017-09-09
  • 打赏
  • 举报
回复
定时的东西,不要放在web程序里去做,可以开发一个windows service去做
还想懒够 2017-09-09
  • 打赏
  • 举报
回复
引用 17 楼 ying1234 的回复:
定时的东西,不要放在web程序里去做,可以开发一个windows service去做
定时触发的没必要用Windows Service,用计划任务跑一个Console就行了。而Windows Service建议用于跑一些常驻的服务,比如说监听某个端口,或者是监听某个事件(如MSMQ等)
nitaiyoucala 2017-08-02
  • 打赏
  • 举报
回复
推荐quartz.net
加油馒头 2017-08-01
  • 打赏
  • 举报
回复
IIS会自动回收 这种方法不可行 换个有系统的云服务器吧 没多少钱
palhotel 2017-07-26
  • 打赏
  • 举报
回复
所以可以试试Azure,有Job之类的东西。阿里云我觉得不好。
  • 打赏
  • 举报
回复
直接用quartz.net不行么?
by_封爱 2017-07-26
  • 打赏
  • 举报
回复
服务器还多少钱啊 现在还有用虚拟机的???
zhanglong_longlong 2017-07-25
  • 打赏
  • 举报
回复
引用 6 楼 l_j_dota_1111 的回复:
这是一个方法,回头可以试试。有一个问题就是 IIS默认回收时间不是29个小时吗,我一天执行一次是24个小时,还没到29个小时呢。而且我在application_end 中写了代码防止iis回收
写windows服务,或者数据库作业,定时尽可能的不要在iis中
  • 打赏
  • 举报
回复
asp.net 网站代码“防止回收”或者有人说什么“拉起”,是个笑话。网站随时会重启。你的网站是乏人问津所以你不知道,要是一个大网站,经常会重启asp.net 应用。 来看看你的问题就会发现,没人用这个网站,所以才出现这个问题。但凡有人经常,或者你在某个桌面或者windows服务里边定时去访问一下网站,它就不会显得无人问津。
l-June 2017-07-25
  • 打赏
  • 举报
回复
引用 8 楼 zhanglong_longlong 的回复:
引用 6 楼 l_j_dota_1111 的回复:
这是一个方法,回头可以试试。有一个问题就是 IIS默认回收时间不是29个小时吗,我一天执行一次是24个小时,还没到29个小时呢。而且我在application_end 中写了代码防止iis回收
写windows服务,或者数据库作业,定时尽可能的不要在iis中
在云虚拟空间部署的网站,无法写window服务
l-June 2017-07-25
  • 打赏
  • 举报
回复
引用 7 楼 closurer 的回复:
[quote=引用 6 楼 l_j_dota_1111 的回复:] 这是一个方法,回头可以试试。有一个问题就是 IIS默认回收时间不是29个小时吗,我一天执行一次是24个小时,还没到29个小时呢。而且我在application_end 中写了代码防止iis回收
这种虚拟空间的方式,你也不能确定 iis 是不是默认的设定。 而且,你可能抄了网上在 application_end 里面唤醒网站的代码,你这个示例只能防止网站在第一次访问的时候太慢,对于定时器,是无济于事的。顾名思义,application_end 执行的时候,应用程序池已经回收了,定时器也会重新计时。 [/quote] 问过阿里云技术人员,云虚拟空间程序池自动回收时间是1740分钟,和默认的一样
闭包客 2017-07-24
  • 打赏
  • 举报
回复
引用 6 楼 l_j_dota_1111 的回复:
这是一个方法,回头可以试试。有一个问题就是 IIS默认回收时间不是29个小时吗,我一天执行一次是24个小时,还没到29个小时呢。而且我在application_end 中写了代码防止iis回收
这种虚拟空间的方式,你也不能确定 iis 是不是默认的设定。 而且,你可能抄了网上在 application_end 里面唤醒网站的代码,你这个示例只能防止网站在第一次访问的时候太慢,对于定时器,是无济于事的。顾名思义,application_end 执行的时候,应用程序池已经回收了,定时器也会重新计时。
l-June 2017-07-24
  • 打赏
  • 举报
回复
这是一个方法,回头可以试试。有一个问题就是 IIS默认回收时间不是29个小时吗,我一天执行一次是24个小时,还没到29个小时呢。而且我在application_end 中写了代码防止iis回收
闭包客 2017-07-24
  • 打赏
  • 举报
回复
引用 3 楼 l_j_dota_1111 的回复:
[quote=引用 1 楼 closurer 的回复:] 最好看看你的 iis 设置: http://blog.csdn.net/closurer/article/details/72389011
你好,网站部署在阿里云虚拟空间上,无法设置iis[/quote] 那你是控制不了应用程序池的回收的,也就是无法使用长时间间隔的定时器。 不过你可以改变你的设计,改为短时间间隔检查“今天是否发送了邮件”。
liujian098 2017-07-24
  • 打赏
  • 举报
回复
引用 楼主 l_j_dota_1111 的回复:
各位大神 网站部署在阿里云虚拟空间后 每隔一天发送一封邮件,总是实现不了 如果时间改成1个小时一封邮件,则没问题。我代码写在global.asax 中,网站打开 运行Application_Start函数。 发邮件写在了SendEmail方法中。最后防止IIS回收 在Application_End中写了防止应用程序池自动回收问题的代码
非要放在服务器上执行吗?发邮件可以放本地的啊 你本地开个电脑 每天自动执行也是一样的啊 你改变不了IIS 那没办法啊
l-June 2017-07-24
  • 打赏
  • 举报
回复
引用 1 楼 closurer 的回复:
最好看看你的 iis 设置: http://blog.csdn.net/closurer/article/details/72389011
你好,网站部署在阿里云虚拟空间上,无法设置iis
l-June 2017-07-24
  • 打赏
  • 举报
回复
你好,网站部署在阿里云虚拟空间上,无法设置IIS
闭包客 2017-07-24
  • 打赏
  • 举报
回复

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧