网站发布后能否在IIS上定时执行任务
如题
1、能否实现:
网站在服务器IIS发布后,网站里有每隔1分钟执行一个SQL语句的机制,然后在不开该网页的时候会自动实现吗,这种有没可能
[解决办法]
没有,你可以用数据库的job来实现,或者你写个客户端程序定时也行
[解决办法]
添加SQL的事务日志可以实现你要的功能
[解决办法]
可以再全局变量实现,不打开页面也可以
Global.asax
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码 这里设置34个小时间隔 122400000 300000
System.Timers.Timer myTimer = new System.Timers.Timer(122400000);//修改时间间隔
//关联事件
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(AutoExec);
myTimer.AutoReset = true;
myTimer.Enabled = true;
}
/// <summary>
/// 定时执行的代码
/// </summary>
private void AutoExec(object sender,System.Timers.ElapsedEventArgs e)
{
var webNewsAction = new WebApp.Common.WebNewsCollector();//新闻采集
webNewsAction.AutoInsert();
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
//如果出错,删除下面代码
//下面的代码是关键,可解决IIS应用程序池自动回收的问题
System.Threading.Thread.Sleep(1000);
////这里设置你的web地址,可以随便指向你的任意一个aspx页面甚至不存在的页面,目的是要激发Application_Start
////string url = "http://www.xxxxx.com";
string url = "http://localhost:82/111.aspx";
System.Net.HttpWebRequest myHttpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
System.Net.HttpWebResponse myHttpWebResponse = (System.Net.HttpWebResponse)myHttpWebRequest.GetResponse();
System.IO.Stream receiveStream = myHttpWebResponse.GetResponseStream();//得到回写的字节流
//在此添加其它代码
}
1.在这里void Application_Start(object sender, EventArgs e)开一个线程, 循环执行
2.写一个winform程序, 在你的服务器上运行
3.写一个sql server的计划, 定期执行
[解决办法]
可以的。用Timer或者自定义线程。如果是定时执行SQL没有别的操作推荐使用数据库Job,复杂操作用IIS或Window Service好点
[解决办法]
这个问题与我的一样,也想在网站中实现这样一个功能,来自动采集新闻,自动添加到自己网站上。
[解决办法]
1.自己写一个Window Service。
2.写应用程序在计划任务中调用。
3.Sql Server2005 以上用 Job.
[解决办法]
服务器也可以开线程,so,线程里做。
[解决办法]
[解决办法]
System.Timers.Timer可以实现WebForm的定时,但时间非常不准确。。。最好考虑用Winform来写定时的吧