【问题标题】:asp.net script in task scheduler任务调度程序中的 asp.net 脚本
【发布时间】:2010-12-30 04:21:27
【问题描述】:

我有一个小的 asp.net 脚本,可以作为网页执行

http://localhost/myscript.aspx

我需要这个脚本每 30 秒运行一次。

我正在使用带有 IIS 6.0 的 Windows Server 2003 我有可用的任务调度程序,但是正在启动 iexplorer.exe http://localhost/myscript.aspx 打开浏览器甚至将 JavaScript windows.close () 放在页面内,所以几分钟后我会打开太多浏览器

如何运行类似于 Unix Lynx http://localhost/myscript.aspx > null

【问题讨论】:

    标签: asp.net iis-6 cron windows-server-2003


    【解决方案1】:

    安装PowerShell然后你可以创建一个运行以下命令的任务:

    powershell.exe -c (new-object system.net.webclient).downloadstring('http://localhost/myscript.aspx')
    

    【讨论】:

    • 我无法安装任何东西,因此 PowerShell 不是解决方案,我只能使用任务计划程序来运行此页面 - 问题是如何
    • 是网络主机还是什么的? PowerShell 安装在哪里并不重要,只要它可以向 Web 服务器发出请求即可。底线是您需要能够在某处安装 something 因为据我所知,在 Windows 2003 中没有用于发出 HTTP 请求的内置命令行实用程序。
    • @bensiu:PowerShell 可能已经安装。此外,WScript 可能已经安装 - 您可以编写一个 JavaScript(或 VBScript)文件并通过任务管理器执行它。见asp101.com/articles/john/schedule/default.asp
    【解决方案2】:

    我会改为在 Application_Start 事件中启动一个后台线程,然后使用计时器对象在该后台线程中每 30 秒触发一次操作。

    【讨论】:

    • 你仍然需要有一些东西请求页面才能启动工作进程。此外,在 ASP.NET 应用程序中创建后台线程并不是一个好主意,这会限制您的横向扩展选项。
    • 不,因为我在 Application_Start 事件中启动线程并且从那里开始线程是独立的。我只需要一个 Application_Start 事件的触发器。
    • IIS 可以并且会因为各种原因终止您的工作进程,包括但不限于空闲时间、内存使用、响应时间慢等。您甚至无法确定应用程序是否正在运行,除非它正在处理一个请求。
    • 同意 IIS 杀死进程以使用内存等。但是对于这样的事情,我宁愿创建一个像 Windows 服务这样的后台服务,除非迫切需要用 ASP.Net Worker 进程对其进行标记并且不确定在这种情况下 OP 的要求是什么。此外,如果 IIS 终止进程,那么 Web 应用程序也不会被终止,在这种情况下,我认为在重新启动之前不需要后台进程
    【解决方案3】:

    保存您的 vbs 文件,

    设置 WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "iexplore your url", 9

    WScript.Sleep 20000 ' 给 ie 一些时间来加载

    '关闭浏览器

    WshShell.SendKeys "%F"

    WshShell.SendKeys "C"

    【讨论】:

      猜你喜欢
      • 2019-03-10
      • 2016-07-15
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      相关资源
      最近更新 更多