0

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

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

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

4

2 回答 2

1

您可以使用为执行此任务而生的ATrigger 。与您的问题相关,您可以检查此用例:

.Net 库也可用。

免责声明:我是构建 A Trigger 的团队之一。这是一个免费软件。

于 2013-10-10T11:52:17.570 回答
0

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

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

于 2013-10-10T13:26:07.407 回答