日期:2014-05-17  浏览次数:20436 次

网站发布后能否在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();//得到回写的字节流

        //在此添加其它代码
    }

------解决方案--------------------
bs结构的定时任务都不可靠,有很多因素,一般的做法需要配合cs结构的。
------解决方案--------------------
bs不好做定时

如果LZ用的SQLSERVER数据库的话  job是最方便实现了

如果要的是其他的话 可能还要写windows定时任务
你自己写一个执行那个sql的页面,每一分钟那个定时任务访问以下那个页面 即可
------解决方案--------------------
可以,但是不稳定。
------解决方案--------------------