我想要sendmail延迟进程,我不想发送邮件,如果我是六天后没有sendmail的后台线程

时间:2013-10-09 12:40:54

标签: c# asp.net .net

我正在创建一个ASP.NET .NET 4.0网站,并且该网站的一部分要求有一个"始终在运行"应用。通常情况下,我会为此创建一个Windows服务,但该网站将托管在共享托管环境中,除非我得到虚拟服务器,否则这不可能。

我的第一个想法是在后台运行一个可以执行此操作的线程,它将在Application_Start上创建并在Application_End上销毁。我环顾四周,看起来这可能是一个选项,但我当然必须点击网站才能调用Application_Start,如果关联的AppPool被重新打包,那么这个过程必须重复(所以我相信?!?)。

在普通的ASP.NET网站中,这些看起来有可能吗?我正在开发一个ASP.NET(带有sql server)应用程序。

2 个答案:

答案 0 :(得分:1)

您可以使用生成此任务的ATrigger。与您的问题相关,您可以查看此用例:

.Net library也可用。

免责声明:我是建立A触发器的团队之一。这是一个免费软件。

答案 1 :(得分:0)

首先,您应该将电子邮件排队,可能在数据库的表中。请记住,您可以通过Ms Sql Server(http://technet.microsoft.com/en-us/library/ms190307.aspx)发送邮件,这是一个选项。

另一种方法是使用Quartz Net调度程序。编写一个MailingService类并通过在application_start事件中初始化quartz来运行它。您可以将其配置为每分钟运行并检查邮件队列并尝试发送,如果已成功发送,则从队列中删除...即使您回收应用程序,您的邮件也不会丢失,因为它们在数据库中排队。