0

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

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

已编辑

我在共享主机服务器上,因此该解决方案必须能够在共享主机上运行。

或者

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

4

3 回答 3

1

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

ASP.NET 应用程序是基于每个请求的,因此您通常不会让长时间运行的进程从应用程序本身进行后台工作。查找一些调度 Web 应用程序的示例可能会对您有所帮助,这样您就可以了解通常发生的情况。

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

于 2009-03-11T04:06:39.960 回答
1

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

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

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

于 2009-03-11T04:10:28.237 回答
1

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

  • 服务器上的 Windows 服务
  • SQL 作业
  • 在服务器上计划的 CRON 或 AT 作业

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

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

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

然后它点击的页面将:

  1. 检查标志以查看是否已发送今天的警报。
  2. 更新标志以说明发送正在进行中。
  3. 搜索今天的警报。
  4. 发送今天的警报。
  5. 更新标志以说明警报已发送。

我们基本上有一个 SQL 作业,它在我们的网络服务器上调用这样的页面来发送每日警报,它通常工作得很好。

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

这类事情有多种选择:

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

于 2009-03-13T10:39:15.263 回答