.net 每天点击一次URL

.net 每天点击一次URL,.net,.net,我想确保一个链接在我的.net网站中每天被点击一次(而且只有一次), 我在共享服务器上,因此无法运行可执行文件,也无法访问24小时开机以创建计划任务的pc 我的选项是什么?您可以使用缓存类-添加新缓存项时,您可以将其设置为24小时后过期,并在事件处理程序中传递,以便在其过期时执行 在事件处理程序中,可以重置缓存项 请参阅和onRemoveCallback的参数: onRemoveCallback- 类型:System.Web.Caching.CacheItemRemovedCallback 从缓

我想确保一个链接在我的.net网站中每天被点击一次(而且只有一次), 我在共享服务器上,因此无法运行可执行文件,也无法访问24小时开机以创建计划任务的pc


我的选项是什么?

您可以使用缓存类-添加新缓存项时,您可以将其设置为24小时后过期,并在事件处理程序中传递,以便在其过期时执行

在事件处理程序中,可以重置缓存项

请参阅和
onRemoveCallback
的参数:

onRemoveCallback- 类型:
System.Web.Caching.CacheItemRemovedCallback
从缓存中删除对象时调用的委托(如果提供)。当应用程序的对象从缓存中删除时,可以使用此选项通知应用程序


有可能做一个cron工作吗

0 0 * * * curl -q http://www.example.com/page.aspx

你最好的选择是一个静态构造函数+定时器+一些安全措施来确保它每天只运行一次

您可能需要对此进行改进,以确保做到以下几点:不要等到一整天才开始跑步。如果前一次跑步是23小时前,不要等待一整天。一些数学基本上是为了确保下一次运行是从运行开始的24小时开始

大概

private static DateTime _lastNavigated;
private static Timer _myTimer

static MyObject()
{
    _myTimer = new Timer(24 * 60 * 60 * 1000);
    _myTimer.Elapsed += MyOnceADayCode;
    _myTimer.Enabled = true;
}

public static void MyOnceADayCode(object source, ElapsedEventArgs e)
{
    _lastNavigated = DateTime.UtcNow;
    if (DateTime.UtcNow > _lastNavigated.AddDays(1))
    {
        // Haven't navigated in the last day, need to navigate again
    }
}

另一个想法(取决于您的帐户是否具有访问权限)是创建(使用代码)计划任务。有一些很好的包装器类使用COM为您完成所有工作。您仍然需要一个静态构造函数来确保代码在应用程序加载时执行。

要使用ASP.NET在您的网站内执行计划任务,我建议您阅读。

您能否澄清一下,关于应用程序重新启动的时间是每天一次?是否需要保存结果?如果应用程序重新启动,是否需要从磁盘读回结果?@MAfifi-基本上,我需要执行一块代码,执行一些操作,包括保存到数据库。通过点击url,我可以执行该代码块»,并且无法访问24小时开机以创建计划任务的pc«–您可以建议WebCron服务。