http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6223|回复: 7

[Asp.Net] asp.net定时执行方法在Global全局应用程序中实现

[复制链接]
发表于 2014-2-20 10:07:16 | 显示全部楼层 |阅读模式
asp.net定时执行方法在Global全局应用程序中实现


我想做的就是这样一个功能,
实现一个定时执行一个方法的功能,
其实就是定时执行一时固定的操作
这个我要借助Global文件来实现,
大家看看我的实现方法吧。
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Timers;
using System.Net;
using System.IO;
using System.Threading;

namespace Request
{
    public class Global : System.Web.HttpApplication
    {

        protected void Application_Start(object sender, EventArgs e)
        {
            //定时器  
            System.Timers.Timer comTimer = new System.Timers.Timer(10000);
            comTimer.Elapsed += new ElapsedEventHandler(comTimer_Elapsed);
            comTimer.Enabled = true;
            comTimer.AutoReset = true;
        }
        
        void comTimer_Elapsed(object source, ElapsedEventArgs e)
        {
            try
            {
                //执行内容
            }
            catch { }
        }

        protected void Application_End(object sender, EventArgs e)
        {
            try
            {
                //下面的代码是关键,可解决IIS应用程序池自动回收的问题
                Thread.Sleep(1000);
                //这里设置你的web地址,可以随便指向你的任意一个aspx页面甚至不存在的页面,目的是要激发Application_Start  
                string url = "http://www.sufeinet.com/Login.aspx ";
                HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
                Stream receiveStream = myHttpWebResponse.GetResponseStream();//得到回写的字节流  
            }
            catch { }

        }
        protected void Session_Start(object sender, EventArgs e)
        {

        }

        protected void Application_BeginRequest(object sender, EventArgs e)
        {

        }

        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {

        }

        protected void Application_Error(object sender, EventArgs e)
        {

        }

        protected void Session_End(object sender, EventArgs e)
        {

        }


    }
}

这样就行了,这样每过10000毫秒会执行一次void comTimer_Elapsed(object source, ElapsedEventArgs e)这个方法。
为了解决IIS回收的后不执行的问题我还增加了这样一个功能大家请看
[C#] 纯文本查看 复制代码
protected void Application_End(object sender, EventArgs e)
{
try
{
//下面的代码是关键,可解决IIS应用程序池自动回收的问题
Thread.Sleep(1000);
//这里设置你的web地址,可以随便指向你的任意一个aspx页面甚至不存在的页面,目的是要激发Application_Start 
string url = "http://www.sufeinet.com/Login.aspx ";
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
Stream receiveStream = myHttpWebResponse.GetResponseStream();//得到回写的字节流 
}
catch { }

}

里面有注释大家自己看看吧,
有问题请回复我。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2014-2-20 10:37:08 | 显示全部楼层
关于时间 的计算如下方法所示
[C#] 纯文本查看 复制代码
 
                        double h = (DateTime.Now - rl.pageListener[k].CreateTime).TotalHours;
                                if (h > 4)
                                {

                                };


发表于 2014-4-21 08:47:49 | 显示全部楼层
受教了,学习中……
发表于 2014-9-25 11:03:49 | 显示全部楼层
有时候编译发布后Global.asax不执行怎么办?直接把未编译的 Global.asax和Global.asax.cs 复制到已发布的网站根目录即可 ~~~
发表于 2014-10-8 12:26:42 | 显示全部楼层
感谢您的无私奉献,真是帮了我的大忙了
发表于 2014-12-19 14:15:37 | 显示全部楼层
如果像那种贷款网站,每天都要更新计算利息,这要怎么实现呢?@站长苏飞  
 楼主| 发表于 2014-12-19 14:17:35 | 显示全部楼层
网站网页 发表于 2014-12-19 14:15
如果像那种贷款网站,每天都要更新计算利息,这要怎么实现呢?@站长苏飞

这个没什么吧,每天获取到新的指数进行修改就行了,只需要将所的调取的部分配置出来应该就行了
发表于 2014-12-19 14:31:19 | 显示全部楼层
站长苏飞 发表于 2014-12-19 14:17
这个没什么吧,每天获取到新的指数进行修改就行了,只需要将所的调取的部分配置出来应该就行了

如果服务器  重新启动了  有影响吗?
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-8 22:50

© 2014-2021

快速回复 返回顶部 返回列表