【问题标题】:Running ASP.NET code behind on Plesk Scheduled Task在 Plesk 计划任务上运行 ASP.NET 代码
【发布时间】:2020-11-28 02:57:50
【问题描述】:

只是想问一下我是否可以安排一个 ASP 网络代码隐藏在每天 00:00 运行?我现在正在做的是转到 Plesk > Scheduled Task > Fetch URL 并在其上写入 URL,希望计划页面的 Page Load 事件能够运行。不过好像不是这样的。

我在 Hostgator 上托管一个共享环境中的网站,所以 Windows 调度程序对我来说不可行,Quartz 也不可行,因为我是 asp.net 的初学者,但仍然不知道如何在之后准确使用它谷歌搜索一个小时。甚至不知道如何编写 php,所以如果这是您建议的解决方案,请明确说明

有什么方法请推荐

如果有人能提供帮助,我们将不胜感激。提前非常感谢:)

另一个问题

cmd3.Parameters.AddWithValue("@sid", sid);
MySqlDataReader sdr2 = cmd3.ExecuteReader();
while (sdr2.Read())
{
    string clid = sdr2.GetString(0);
    string couid = sdr2.GetString(0).Split('-')[0] + "-" +b sdr2.GetString(0).Split('-')[1];
    string day = sdr2.GetString(1).ToLower();
    string start = sdr2.GetString(2) + ":00";
    string end = sdr2.GetString(3) + ":00";
    string teacher = sdr2.GetString(4);
    sqlconn.Close();
    sqlconn.Open();
    MySqlCommand cmd4 = new MySqlCommand("select " + gra + " from classes where courseid=@cid and " + gra + " is null", sqlconn);
    cmd4.Parameters.AddWithValue("@cid", couid);
    MySqlDataReader sdr3 = cmd4.ExecuteReader();
    if (sdr3.Read())
    {
        sqlconn.Close();
        sqlconn.Open();
        MySqlCommand cmd5 = new MySqlCommand("delete from enroll where classid = @clid and studentid=@sid;update " + day + " set currentstudent=currentstudent-1 where classid=@clid and start=@start and end=@end and teacher=@teacher", sqlconn);
        cmd5.Parameters.AddWithValue("@clid", clid);
        cmd5.Parameters.AddWithValue("@sid", sid);
        cmd5.Parameters.AddWithValue("@start", start);
        cmd5.Parameters.AddWithValue("@end", end);
        cmd5.Parameters.AddWithValue("@teacher", teacher);
        cmd5.ExecuteNonQuery();
    }
}

这会导致连接错误 MySql.Data.MySqlClient.MySqlException: 'Invalid attempt to Read when reader is closed.' 。我认为这是因为我在为 sdr3 和 cmd5 打开新连接时关闭了读取 sdr2 的原始连接。有什么办法解决吗?

【问题讨论】:

  • 不清楚您到底要做什么? ASP.net 专门用于基于 http 请求生成 Web 内容。它可以执行一些非常复杂的基于服务器的任务,但它必须基于/由 http 客户端请求发起。
  • 所以我想每天00:00更新数据库,有什么办法吗?谢谢~
  • 您是否希望每天午夜更新 MySql / MSSQL 数据库?您可以使用 Plesk 计划任务来触发针对数据库的存储过程,而不是触发 c#/vb 代码来执行相同的操作。
  • @RazorKillBen- 有关如何实际实现这一目标的更多详细信息?是的,你是对的,但我还有其他事情要做:根据行的字段值发送电子邮件
  • 听起来你需要一个 .net 模块,它可以编译成可执行文件,你可以编组所有任务(数据库调用、电子邮件等),然后你需要安排该模块在所需时间。

标签: c# asp.net scheduled-tasks plesk


【解决方案1】:

你可以做的是:

  1. 在您的 Web 应用程序的服务器端代码(代码隐藏)中对您的任务进行编码,然后在客户端 PC 上安排一个(Windows)任务以向您的 URL 发送一个HTTP 请求web 应用(或 web API)触发执行这些任务的代码的 url 地址

Scheduled Task:您可以安排一个 (Power) Shell 脚本,该脚本将启动浏览器或 (Postman) 所需的 URL,以触发您的编码服务器任务.您只需要确保具有计划任务的系统在计划请求时处于开启状态并配置了正确的权限。

【讨论】:

    猜你喜欢
    • 2017-10-16
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2017-04-06
    相关资源
    最近更新 更多