如何安排C#代码执行
我正在使用ASP.Net和C#。 我想在特定时间同步某些东西。 我做了一个方法,这样做,它的工作。 但我的问题是如何在特定时间每天调用此方法。
客户不信任任何第三方工具,因此无法使用它。
Windows服务不是一个好的解决方案。
如果我提供网络服务,我应该如何在每天的特定时间拨打电话?
例如,我想每天晚上7点运行方法。
在启动时,将项目添加到具有固定过期的HttpRuntime.Cache。 当缓存项目到期时,请执行您的工作,例如WebRequest或您拥有的内容。 使用固定的到期时间将项重新添加到缓存中。
private static CacheItemRemovedCallback OnCacheRemove = null; protected void Application_Start(object sender, EventArgs e) { AddTask("DoStuff", 60); } private void AddTask(string name, int seconds) { OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved); HttpRuntime.Cache.Insert(name, seconds, null, DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, OnCacheRemove); } public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r) { // do stuff here if it matches our taskname, like WebRequest // re-add our task so it recurs AddTask(k, Convert.ToInt32(v)); }
您可以使用Windows计划任务来运行应用程序(exe)或创建Windows服务并使用计时器 。 看看Quartz.NET它也可以使用。
- 在ASP.Net Core中validationIFormFile的图像类型
- ASP.NET自定义控件 – 复合材料
- 实现Custom MembershipUser和Custom MembershipProvider
- 返回JSON对象(ASP.NET WebAPI)
- System.Drawing.Image.FromStream()方法中的“参数无效”exception
- 添加新WebForm时Visual Studio 2015中的错误
- Word邮件从ASP.NET Web应用程序合并
- 如何将String拆分为多个值?
- 无法加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Common”或其依赖项之一