【问题标题】:.NET Script Scheduler.NET 脚本调度程序
【发布时间】:2011-08-12 21:28:44
【问题描述】:

嘿,我有一个 .NET .aspx 页面,我想每隔一小时左右运行一次,最好的方法是什么?

我认为它必须打开一个浏览器窗口才能这样做,如果可能的话,它会在之后关闭窗口。

编辑:我可以访问服务器上的所有功能

【问题讨论】:

    标签: asp.net scheduled-tasks


    【解决方案1】:

    选项 1:最简洁的解决方案是编写一个 Windows 应用程序来完成这项工作(而不是一个 aspx 页面)并使用 Windows 任务计划程序在服务器上安排该应用程序。这与 aspx 方法相比有一些优点:

    • 您可以使用 Windows 任务计划程序的功能(任务无法启动时的事件日志条目、查看上次运行的时间、在特定用户的上下文中运行任务等)。李>
    • 您无需“模拟”网络浏览器调用。
    • 您的页面不能被网络用户或搜索引擎“意外”调用。
    • 概念上更简洁:网页的主要目的是向客户端提供信息,而不是触发服务器上的操作。

    当然,也有缺点:

    • 您有两个 Visual Studio 项目,而不是一个。
    • 您可能需要将公共代码分解到共享类库中。 (这也可以看作是一种优势。)
    • 您的系统变得更加复杂,因此可能更难维护。

    选项 2:如果您需要坚持使用 aspx 页面,最简单的解决方案可能是在计划任务中通过命令行 Web 客户端调用该页面。由于 Windows 不提供任何内置的命令行 Web 客户端,因此您必须下载诸如 wgetcurl 之类的客户端。这个相关的 SO 问题包含必要的命令行语法:

    【讨论】:

    • 由于多种原因,我被困在 .aspx 页面上。但是我想我仍然可以使用任务计划程序来运行此页面,但是之后它将如何关闭页面?
    • @StevieB:您可以编写一个使用命令行 Web 客户端的批处理文件,例如 curl (curl.haxx.se)。它创建到网页的连接,输出 HTML 代码,然后终止。
    • @Heinzi,对不起,伙计,我有点过头了。我认为这将是一个简单的任务来安排一个 .aspx 来运行每个房子,结果它是一场噩梦
    • @StevieB:这并不像看起来那么难。看看这个相关的问题:stackoverflow.com/questions/2927330/scheduled-tasks-for-asp-net/…
    • @Heinze 是的,我读到的每一页都在讨论 15 种不同的做法,但细节很少,很难找到可行的解决方案
    【解决方案2】:

    使用此示例在 asp.net 中安排任务:

    enter link description here

    然后你需要创建Hit.aspx 页面,女巫会做你想做的事。那么您应该每次(使用WebClient 类)任务执行时间过去时调用该页面!

    【讨论】:

      【解决方案3】:

      您可以使用http://quartznet.sourceforge.net/ Quartz Job Scheduler。

      使用 Quartz.net,您可以编写一个作业,该作业会以您选择的时间间隔请求您的网页。

      或者您也可以编写一个将请求该网页的 Windows 服务。

      【讨论】:

      • 嘿,好的,我下载了这个,但基本上它只是我看到的一个 Visual Studio 解决方案文件夹。我看不出我是如何实际使用这个工具的?对于这样一个简单的任务,这是一种令人困惑的方式
      • 看起来很复杂,但是学习这样的工具可以很好地满足进一步的需求。我就是这样指给你的。 jvilalta.blogspot.com/2009/03/… 这里是关于quartz.net 的一系列博文。
      猜你喜欢
      • 1970-01-01
      • 2017-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 2011-11-21
      相关资源
      最近更新 更多