我有一个时钟输入和时钟输出模块,用于记录来自 Asp.NET 应用程序的工作人员的开始时间和结束时间。
我想问如何为 asp.net 应用程序做 cron 工作,以查看工作人员是否没有在该日期或星期输入他们的时间,并发送电子邮件通知以提醒他们输入开始时间和结束时间。
我有一个时钟输入和时钟输出模块,用于记录来自 Asp.NET 应用程序的工作人员的开始时间和结束时间。
我想问如何为 asp.net 应用程序做 cron 工作,以查看工作人员是否没有在该日期或星期输入他们的时间,并发送电子邮件通知以提醒他们输入开始时间和结束时间。
ASP.NET 是不适合这项工作的工具。您最好编写一个在计划任务上运行的控制台应用程序,或者编写一个定期轮询的Windows 服务。ASP.NET 纯粹用于请求/响应模型。
任何一个都可以访问网站正在读取/写入的任何数据存储,就像 ASP.NET 站点一样容易。
如果您都没有这样做,那么控制台应用程序是迄今为止最容易编写和实现的。与控制台应用程序可能的 XCOPY 部署模型相比,Windows 服务并没有那么糟糕,但涉及额外的开销,包括调试困难,以及需要经历一个特殊的安装过程。
如果您真的想在 ASP.NET 中执行此操作,您可以编写一个执行此操作的 asp.net 网页,并使用 Windows 计划任务来运行它。计划任务可以将 Internet Explorer 打开到特定页面,就像它可以运行任何可执行文件一样容易。 但我不会推荐它。任务完成后,您将永远必须关闭 IE 窗口,这实际上是一个“hackish”解决方案。当我还是一个纯粹的 Web 开发人员时,我就这样做了,并且不知道更好,但从那以后就没有了。
Jeff Atwood 在 Stack Overflow 博客上发表了题为“ ASP.NET 中的简单后台任务”的文章,该博客在该网站的早期发布了关于在 ASP.NET 中执行后台任务的简单方法。如果您的任务相对较轻,这可能不是一个坏方法。如果您有理由真正希望将所有内容保留在现有的 ASP.NET 应用程序中,那么这可能是您要走的路。
要点:
尽管从技术上讲,它不是一项 cron 工作,但您可以在网站内让网站在一天中的 X 时间调用设置的页面。
我已经通过 web 方法调用完成了几次,从应用程序启动开始在计时器上调用该方法。
基本解释在这里: Call a pages from c# in code