【发布时间】:2009-12-11 18:03:18
【问题描述】:
我有一个用 ASP.NET、VB.NET 和 LINQ to SQL 编写的图书借阅系统。我希望网络应用程序在图书逾期前向借阅者发送有关到期日的电子邮件提醒。我应该编写一个桌面应用程序来检查到期日还是有其他方法来发送电子邮件提醒?
感谢您的任何建议。
【问题讨论】:
我有一个用 ASP.NET、VB.NET 和 LINQ to SQL 编写的图书借阅系统。我希望网络应用程序在图书逾期前向借阅者发送有关到期日的电子邮件提醒。我应该编写一个桌面应用程序来检查到期日还是有其他方法来发送电子邮件提醒?
感谢您的任何建议。
【问题讨论】:
编写与 Windows 计划任务一起运行的服务或控制台应用程序,然后让其查询数据库以了解到期日期,并相应地发送电子邮件。
不要使用桌面交互。
【讨论】:
定期服务。如果您的 LINQ 后端是一个不错的数据库(如 SQL Server),您可以使用 SQL Server 代理安排任务,并在必要时触发电子邮件。这可以通过脚本或 CLR SQL 程序集(实际上是插入 SQL 服务器的 .net 程序集)来完成。
【讨论】:
根据站点看到的流量,您可以像 StackOverflow 一样使用 HTTP 缓存。您可以在this blog post 中阅读有关它的信息。虽然博客现在似乎已关闭,但这里是Google cache。
【讨论】:
如果你写了一个windows桌面应用程序,那么如果你不登录它就不会运行。你可以写一个windows服务并将它安装在服务器上,它可以发送提醒电子邮件。
【讨论】:
我认为 Windows 服务适合这项任务。看看那个关于using timer with a windows service的问题。
【讨论】:
我为 Windows 服务here 收藏了一个很棒的入门小教程
【讨论】:
我会查看Quartz.NET 一个用于 .NET 平台的开源作业调度程序。您可以使用它在 Windows 服务中执行计划任务。例如,您可以安排一个任务每天早上运行并让它查询您的数据库,然后如果一本书的到期日期在该范围内,则发送一封电子邮件。
【讨论】: