如何在ASP.NET / WCF中定期执行某些操作?

首先抱歉提出这样一个愚蠢的问题,我是asp.net的新手。

所以,我应该定期做一些事情,说我是网站heartpatients.com的所有者(假设),我希望每个访问该网站的网站用户都能在2小时后显示一条消息“拿你的药”。 所以,基本上这都是我的问题,我应该在每2小时(或4,6之后的任何时间)之后显示此消息,我也可以如何自定义时间。
还有一件事,比如我在WCF服务中有这个方法,它显示了这条消息,如何在特定时间调用该服务,甚至用户配置(比如有人在10小时后吃药?)那么如何在用户指定的时间之后定期调用该服务(服务中的特定方法)?

我希望我的问题很清楚。
任何帮助表示赞赏。

ASP.NET通常不适合作为任务调度程序。 Web的本质是作为请求/响应系统。 因此,Web应用程序应该等待请求,生成响应并完成。

对于任何类型的后端计划任务,我建议:

  1. Windows服务
  2. 计划运行的控制台应用程序(我认为Windows附带了一个任务调度程序)

无论哪种方式都有利弊。 例如,Windows服务将从引导时运行,并且没有控制台UI,并且从服务器角度来看通常是非常易于管理的。 虽然控制台应用程序传统上更易于编写和调试。

这些仍然可以共享您的Web应用程序中的代码。 如果您的业务逻辑和数据访问以及所有好东西都在他们自己的项目/程序集中,那么这些其他应用程序也可以使用这些程序集。 (当然,如果Web应用程序中的所有内容都是UI绑定的,那完全是另一个问题。)

我最关心的是……你打算如何向用户展示这条消息? 用户是否只是一次坐在您的网站上几个小时,您需要提醒他们服用药物? 或者您打算发送电子邮件或其他什么? 也许你给出的例子并没有真正解释你想要做什么? 我不确定。

在后台运行任务是一回事,但在我看来,整个方程的一半(向用户显示一条消息)有点茫然而且没有经过深思熟虑。

查看Quartz.Net:http://quartznet.sourceforge.net/

它使您能够使用cron表达式安排任务运行: http : //en.wikipedia.org/wiki/Cron