ASP.NET,SQL中的在线提醒服务的概念是什么?

时间:2009-03-11 04:01:18

标签: sql-server asp.net-2.0 reminders

我想在ASP.NET 2.0(C#)和SQL2005中开发一个Online Reminder服务。但我没有得到提醒服务的概念。 我所知道的是使用在线提醒服务我可以安排未来日期的提醒,通过电子邮件或短信在该日期发送给我(安排提醒)。但是在asp.net中如何做到这一点,caz任何人都可以安排任何日期的提醒,我们将如何知道何时将该邮件发送给该人。我们必须放一些循环或什么。

那么请指导我,在线提醒服务的概念是什么以及如何使用ASP.NET和SQL轻松开发此应用程序

被修改

我在共享托管服务器上,因此该解决方案必须能够在共享托管上工作。

或者

请告诉我是否有人知道任何免费的开源提醒服务CMS,我可以下载并研究它。

3 个答案:

答案 0 :(得分:1)

大多数情况下,这是一个两件式应用程序,用于输入提醒的前端UI和检查预定事件并实际发送通知的服务。

ASP.NET应用程序是基于请求的,因此您通常不会让长时间运行的进程从应用程序本身执行后台工作。您可以查看一些安排Web应用程序的示例,这样您就可以了解通常发生的情况。

编辑:
如果应用程序必须是共享主机上的独立Web应用程序,我没有建议。我不建议设置来实现你的目标。

答案 1 :(得分:1)

您可能需要某种后端流程来查找需要发送提醒的项目。这个可能是ASP.Net工作进程中的后台线程(在global.asx中的Application_Start中启动),但更可能是在后台运行的Windows服务。它可以在与Web应用程序相同的服务器上运行(可能在较小的系统上)或在自己的专用机器上运行。

无论哪种方式,它都不像您期望的那样微不足道,因为在您的支票频率和提醒的滞后时间之间存在平衡行为。

哦,为什么ASP.Net 2.0,当3.5是“当前”?

答案 2 :(得分:1)

是的,你需要的关键是某种调度程序 - 通常你会使用以下之一:

  • 服务器上的Windows服务
  • SQL作业
  • 在服务器上安排的CRON或AT作业

其中任何一个都可以设置为调用您网站上的一个页面来启动此过程。

当您处于共享环境中时,您不太可能访问其中任何一个,因此需要有其他一些流程。

你可以做的是让远程(到服务器)调度程序调用你网站上执行查找和发送电子邮件的页面 - 这可能是你的开发/办公环境中运行的东西(伴随着所有伴随的危险)电源/网络故障等),或者您可以查看获取“站点监控”服务,该服务将定期ping服务器上的页面,以检查它是否已启动并运行。

它点击的页面会:

  1. 检查一个标记,看看今天的警报是否已发送。
  2. 更新标志以说明发送正在进行中。
  3. 搜索今天的提醒。
  4. 发送今天的提醒。
  5. 更新标记以表示已发送警报。
  6. 我们基本上有一个SQL作业在我们的网络服务器上调用这样的页面来发送每日警报,并且通常效果很好。

    没有理由说远程服务器无法调用该页面来启动此过程。

    此类事情可以使用各种选项:

    只是一对,我相信还有更多。