【问题标题】:Scheduled tasks for ASP.NETASP.NET 的计划任务
【发布时间】:2011-02-25 00:29:51
【问题描述】:

如何在windows的计划任务中执行asp.NET代码?

【问题讨论】:

  • 您为什么要这样做?相反,制作 C# 或 VB.NET 控制台应用程序要容易得多。

标签: asp.net scheduled-tasks


【解决方案1】:

我经常使用 wget / curl 从 Windows 计划任务(甚至从不同服务器上的 cron)中执行此操作。对于某些事情,最好将其全部保存在 Web 应用程序中。

例如

   curl -k  https://example.com/update.aspx?id=71077345 -u username:password

   wget -O - http://example.com/process.php 

【讨论】:

    【解决方案2】:

    ASP.Net 与 Windows Workflow (WF) 有很好的集成。我已经通过这种集成完成了 2 个项目。 WF 允许持久化任务,因此它独立于 IIS 重启或系统崩溃

    【讨论】:

      【解决方案3】:

      最简单也可能是最简单的方法是使代码成为命令行应用程序,然后使用控制面板中的 Windows 调度程序执行它。

      【讨论】:

        【解决方案4】:

        如果您对服务器具有完全访问权限,请使用计划任务。

        如果您没有访问权限(共享主机),请创建一个网页/服务,您可以调用它来触发操作。请注意,“行动”是有时间限制的。

        您可以创建一个小应用程序,您可以在自己的计算机上安排它来调用远程服务器,以触发操作。

        【讨论】:

          【解决方案5】:

          无法从 Web 应用程序中调度 ASP.NET 代码,因为 Web 是无状态的。

          我首选的安排 .NET 代码的方法是编写一个安装在 Web 服务器上的 Windows 服务。看。 http://blog.dogma.co.uk/search/label/windowsservice.

          一种更快但效率较低的方法是将代码添加到页面并从 Windows 计划任务执行该页面。

          丰富

          【讨论】:

          • 这不是真的。只要应用程序正在运行,您就可以在 ASP.NET 代码中很好地进行调度。在 IIS 7.5 中,您也可以强制应用程序运行,即使没有执行任何请求。
          • 您可以强制 Web 应用程序热启动,但我不相信您可以在应用程序中安排特定代码。如果我错了,我很乐意被证明是错的。很遗憾,您没有提供额外的信息。
          • 您可以在 ASP.NET 中启动后台线程,就像在任何 .NET 应用程序中一样。从后台线程,你可以做任何你喜欢的后台任务或调度。
          • ASP .Net 可以充分利用 Windows Workflow Foundation 库,这些库支持独立于 IIS 和状态的长时间运行的进程。
          猜你喜欢
          • 2011-01-22
          • 1970-01-01
          • 2020-06-03
          • 2020-12-02
          • 1970-01-01
          • 2013-04-27
          • 2021-04-19
          • 2014-04-15
          • 1970-01-01
          相关资源
          最近更新 更多