【问题标题】:In ASP.NET can I schedule an .ashx page to run at a certain time of the day?在 ASP.NET 中,我可以安排 .ashx 页面在一天中的某个时间运行吗?
【发布时间】:2012-04-17 20:04:35
【问题描述】:

我很好奇是否可以安排我的页面,让我们称之为 Test.ashx 运行,比如说每天凌晨 2 点在 IIS 上使用 ASP.NET? (与 Cron Job 对 PHP/Linux 系统所做的差不多。)

PS1。我需要这个页面来对 SQL 数据库表执行自定义操作。 (请注意,我没有直接访问 IIS 或 SQL Server 本身的权限。我正在编写一个需要为客户端合并此功能的 Web 应用程序。)

PS2。如果这很重要,我会使用 C# 进行编程。

【问题讨论】:

  • 没有可靠的方法来使 ASP.NET 应用程序/ashx/whatever 的行为类似于 cron,因为有几个方面 - 因为 IIS 可以随时回收应用程序域。为此类事情使用 Windows 服务!
  • 我正在使用简单的 Windows 任务计划程序来请求页面,但我的任务很简单(如果有一天它不运行也不是什么大问题)

标签: asp.net cron scheduled-tasks


【解决方案1】:

实现一件事的方法总是不止一种。要定期对 SQL 数据库表执行自定义操作,您可以安排 SQL 作业。查看这个 SO 答案了解更多详情

https://stackoverflow.com/a/5471440/30594

更新:

查看此链接了解如何在 ASP.NET https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/ 中完成后台调度程序

另一种实现方式是使用 Windows 任务计划程序定期调用 .ashx

【讨论】:

  • 有没有办法从 ASP.NET 做到这一点?
  • 如果您坚持使用 ASP.NET(我真的不知道为什么),您可以将 .ashx 放在 IIS 中并使用 Windows 调度程序来调用它。调用时,它可以执行必要的操作。但是,我认为您不能保证它只会运行一次,并且也可以被其他任何人调用。
  • 再次,我需要自动执行此任务(即,不能通过 SQL Server 代理手动配置 SQL Server),因此我的想法是通过脚本来完成。感谢您的链接。
  • @ahmd0 缓存链接很有趣,但不确定它是否适合您的要求 - 每天在给定时间一次(请参阅关于应用回收的评论)。使用任务计划程序的选项应该是您最好的选择(在您控制的 PC 上,不一定在带有 IIS 的盒子上)。您的网络主机(假设)也可能有选项供您安排网络作业(例如,在给定的时间表上请求某些网页)。
猜你喜欢
  • 2018-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多