.NET 脚本调度程序

发布于 2024-11-03 12:13:38 字数 124 浏览 3 评论 0原文

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

我认为它必须打开一个浏览器窗口才能执行此操作,如果可能的话,它会在之后关闭窗口。

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

Hey I have a .NET .aspx page that I would like to run every hour or so whats the best way to do this ?

I assume it will have to open a browser window to do so and if possible that it closes the window after.

EDIT : I have access over all features on the server

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

自由范儿 2024-11-10 12:13:38

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

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

当然,也有缺点:

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

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

Option 1: The cleanest solution would be to write a Windows application that does the work (instead of an aspx page) and schedule this application on the server using the Windows Task Scheduler. This has a few advantages over the aspx approach:

  • You can use the features of the Windows Task Scheduler (event log entries if the task could not be started, see the time of the last run, run the task in the context of a specific user, etc.).
  • You don't need to "simulate" a web browser call.
  • Your page cannot be "accidentally" called by a web user or a search engine.
  • It's conceptually cleaner: The main purpose of a web page is to provide information to the client, not to trigger an action on the server.

Of course, there are drawbacks as well:

  • You have two Visual Studio projects instead of one.
  • You might need to factor common code into a shared class library. (This can also be seen as an advantage.)
  • Your system becomes more complex and, thus, potentially harder to maintain.

Option 2: If you need to stick to an aspx page, the easiest solution is probably to call the page via a command-line web client in a scheduled task. Since Windows does not provide any built-in command-line web clients, you'd have to download one such as wget or curl. This related SO question contains the necessary command-line syntax:

烟酒忠诚 2024-11-10 12:13:38

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

在此处输入链接说明

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

use this sample to schedule a task in asp.net :

enter link description here

then you need to create Hit.aspx page witch will do what you want. then you should call that page every time (using WebClient class) the task execution time elapsed!

无声静候 2024-11-10 12:13:38

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

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

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

You can use http://quartznet.sourceforge.net/ Quartz Job Scheduler.

With Quartz.net you can write a job which will request your web page with interval you choose.

or alternatively you can write an windows service which will request that web page.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文