寻求有关如何创建调度程序以在每天结束时调用操作方法(url)以生成报告的建议。
我有一个使用ASP.NET MVC 5创建的现有Web应用程序,我需要一个使用自动化过程调用的操作方法。目前,我在当天结束时手动调用该链接。
答案 0 :(得分:0)
您可以尝试以下方法。
首先,创建一个批处理文件,您可以通过该文件请求URL。 (您可以从Open a URL without using a browser from a batch file)
创建基本Windows任务计划程序并将操作设置为"启动程序"并将其指向您的批处理文件。
试试这个。
答案 1 :(得分:0)
您应该查看Azure Scheduler,这是一项微服务,它完全按照您的描述进行操作。如果您只需要每小时呼叫一次端点,则免费套餐就足够了。
答案 2 :(得分:0)
最佳解决方案是使用在时间触发器上运行的Azure Web作业或挂钩到cron触发器。
创建一个控制台应用。 从NuGet安装Microsoft.Azure.Webjobs包和Microsoft.Azure.WebJobs.Extensions包。
将其添加到Program.cs
public static void Main()
{
JobHostConfiguration config = new JobHostConfiguration();
config.UseTimers();
JobHost host = new JobHost(config);
host.RunAndBlock();
}
在Functions.cs类中:(每24小时运行一次TimeTrigger)
public class Functions
{
public static void UpdateCurrencyExchange([TimerTrigger("24:00:00")] TimerInfo timerInfo, TextWriter log)
{
//Invoke your method with a Webclient here
}
}
如果您需要在特定时间运行,请在触发器中使用cron表达式:
http://blog.amitapple.com/post/2015/06/scheduling-azure-webjobs/#.WGyYEfkrIuU
答案 3 :(得分:-1)
您是否点击了链接?这就是你要做的一切吗?
您必须先通过ID或其他过滤器找到您的元素:
HtmlElement fbLink = webBrowser.Document.GetElementByID("fbLink");
并模拟"点击":
fbLink.InvokeMember("click");
通过内部文本查找链接的示例:
HtmlElement FindLink(string innerText)
{
foreach (HtmlElement link in webBrowser.Document.GetElementsByTagName("a"))
{
if (link.InnerText.Equals("Google Me"))
{
return link;
}
}
}
只需在C#中创建一个可执行文件并将其保存在您的计算机上。然后,使用Windows Scheduler调用该exe文件。
http://www.digitalcitizen.life/how-create-task-basic-task-wizard