大家好,我的应用程序处理预定邮件概念(即)每天早上 6 点我的用户都会收到一封关于他们当天活动的剩余邮件...我不知道该怎么做....很多人告诉我使用 Windows 服务,但我将在共享服务器上托管我的网站,我可能没有权限执行 Windows 服务...是否有任何 dll 可以通过 asp.net 应用程序在预定的时间发送邮件..请帮帮我......
答案1
ASP.NET 没有内置调度程序,但即使在 Web 应用程序中也有启动后台线程的方法。但我的建议是保持简单,让电子邮件程序网页按需发送电子邮件。然后,您可以从任何计算机安排任务来访问该网页。您可能希望使用某种形式的身份验证来保护邮件程序应用程序,以避免黑客滥用系统来调用电子邮件程序。
这有额外的副作用(优点),即计划任务始终在您的时区运行。
答案2
有一些解决方案,但它们都远非适合您的情况(因为您希望在共享主机上实现这一点)。我强烈建议您尽可能更改为虚拟主机,以便您可以使用 Windows Scheduler。有些主机提供非常便宜的虚拟主机计划(起价为 40 美元)。
如果这不可能,您可以使用上一个答案中建议的后台线程。您还可以定期在网站上调用页面,例如使用网站监控服务。这两种解决方案都不太可靠,但恐怕您在共享主机上没有太多选择。
编辑:我相信有些共享主机在控制面板中为您提供计划任务,我记得不久前我在一些主机上看到过这个。好吧,在这种情况下,您可以找到提供此服务的主机,问题就解决了,只需搜索一下,应该不会太难。
答案3
我们只需设置一个每 24 小时过期一次的缓存对象。在 global.asax 中初始化它,您可以设置回调方法来执行批处理。确保完成后,它会用虚拟对象重新填充缓存,该虚拟对象将在另一个 24 小时内再次调用回调。
答案4
考虑到托管环境,我不确定你是否能够做到这一点,但绝对值得你花时间研究一下石英网处理这类事情。你创建一个作业,并安排它在每天早上 6:00 运行。总的来说,这是一个相当令人印象深刻的工具。