C# 在Asp.net站点中计划HTTP请求

C# 在Asp.net站点中计划HTTP请求,c#,asp.net,scheduled-tasks,httpcontext.cache,C#,Asp.net,Scheduled Tasks,Httpcontext.cache,每天晚上我的HTTPContext.Current.Cache都会被清除。我想在晚上的时间X预热站点,并用数据填充缓存 因为我使用HTTPContext,所以它必须在网站中运行。我目前正在通过在站点上单击一个简单的按钮来启动缓存,然后在几分钟内异步填充缓存 我已经找到了一个解决方案,其中的选项并没有像我认为的那样容易: 系统。计时器不断轮询。它似乎也没有一个选项来设置我想要它运行的特定时间 石英似乎太过分了,但很可能能胜任这项工作。尽管有一点需要仔细阅读才能让它工作 RegisterWaitFo

每天晚上我的HTTPContext.Current.Cache都会被清除。我想在晚上的时间X预热站点,并用数据填充缓存

因为我使用HTTPContext,所以它必须在网站中运行。我目前正在通过在站点上单击一个简单的按钮来启动缓存,然后在几分钟内异步填充缓存

我已经找到了一个解决方案,其中的选项并没有像我认为的那样容易:

系统。计时器不断轮询。它似乎也没有一个选项来设置我想要它运行的特定时间

石英似乎太过分了,但很可能能胜任这项工作。尽管有一点需要仔细阅读才能让它工作

RegisterWaitForSingleObject也可以工作,但这里也只有一个计时器?还不确定是否可以检查是否已经创建了一个对象,因此可能会创建许多对象。也不要在创建对象后更改计时器

浏览它们的速度相对较快,因此可能是错误的。您对从站点内运行计划的http请求有什么看法

[编辑]输入错误。

以下是我要做的-

  • 在具有匿名访问权限的站点内创建一个页面,并将启动缓存的代码(在“立即单击按钮”上写入)放在页面加载事件上

  • 在C#中创建一个简单的控制台应用程序,使HTTPRequest可以访问该页面(您可以查看System.Net.WebClient的示例)

  • 计划此控制台应用程序的.exe在服务器上的Windows计划程序上的特定时间(如凌晨4点)运行


  • 此应用程序是在单实例上运行还是在web farm/web garden上运行?任务计划程序调用curl请求包含相关代码的页面?@Win在web farm上运行。@AlexK。也许行得通。你可以通过点击网站上的按钮来请求页面,以按需启动代码,而不将用户扔到该页面或以其他方式阻止他们吗?只需在加载页面时让页面做一些事情,无需交互。我会尝试一下,看看我是否会坚持下去!谢谢。这种方法很容易设置和工作。仍然想知道是否有其他方法,因为避免另一个项目和配置文件会很好。很高兴随时提供帮助!如果此答案或任何其他答案解决了您的问题,请将其标记为已接受