海家伙,我的应用程序处理定期邮件概念(即)每天早上6.00我的用户得到一个关于他们的活动一天剩余的邮件…我不知道如何做到这一点….许多人告诉使用Windows服务,但我会在共享服务器上托pipe我的网站我可能没有权利做Windows服务…有没有任何dll通过asp.net应用程序在schduled时间发送邮件..请帮助我的家伙……
ASP.NET没有内置调度程序,但即使在Web应用程序中,也可以启动后台线程。 不过,我的build议是保持简单,并让emailer网页按需发送电子邮件。 然后,您可以从任何计算机安排任务来访问该网页。 您可能希望使用某种forms的身份validation来保护邮件程序,以避免黑客可能会调用emailer的系统被滥用。
这有附加的副作用(优势),计划的任务总是在您的时区运行。
有一些解决scheme,但它们都远远不适合你的情况(因为你想在共享主机上)。 如果可能,我强烈build议您更改为虚拟主机,以便您可以使用Windows计划程序。 有主机提供非常便宜的虚拟主机scheme(从40美元起)。
如果这不可能,您可以使用前面的答案build议的后台线程。 您也可以定期在您的网站上拨打一个页面,例如使用网站监控服务。 这两个解决scheme都不是很可靠,但是恐怕你没有共享主机的select。
编辑:我相信一些共享的主机提供您在他们的控制面板的计划任务,我记得我前一段时间看到一些主机。 那么,在这种情况下,你可以find一个主机,提供这项服务,问题解决了,它不应该很难与一点search。
我们只设置了一个每24小时过期的caching对象。 在global.asax中初始化您可以设置callback方法来进行批处理。 确保完成后,再用24小时内再次调用callback的虚拟对象重新填充caching。
我不确定你是否能够考虑托pipe环境,但是对于这样的事情来看看Quartz.NET是值得的。 你创造一个工作,并安排在每天早上6:00运行。 这是一个相当令人印象深刻的工具,总而言之。