.net session application 实现任务计划代码

 代码如下 复制代码

void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
//定义定时器
//1000表示1秒的意思
System.Timers.Timer myTimer = new System.Timers.Timer(1000);
//TaskAction.SetContent 表示要调用的方法
myTimer.Elaps教程ed += new System.Timers.ElapsedEventHandler(TaskAction.SetContent);
myTimer.Enabled = true;
myTimer.AutoReset = true;
}

 

Application_Start 只有在访问一次之后才会触发.

 

 代码如下 复制代码
void Session_End(object sender, EventArgs e)
{
//下面的代码是关键,可解决IIS应用程序池自动回收的问题
System.Threading.Thread.Sleep(1000);
//触发事件, 写入提示信息
TaskAction.SetContent();
//这里设置你的web地址,可以随便指向你的任意一个asp教程x页面甚至不存在的页面,目的是要激发Application_Start
//使用您自己的URL
string url = http://www.111cn.net ;
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();//得到回写的字节流
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 InProc 时,才会引发 Session_End 事件。
// 如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
}

Session_End 中的方法主要是解决IIS应用程序池自动回收的问题.
2. 添加计划任务类 TaskAction

 

 代码如下 复制代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Timers;
/// <summary>
///Action 的摘要说明
/// </summary>
public static class TaskAction
{
private static string content = "";
/// <summary>
/// 输出信息存储的地方.
/// </summary>
public static string Content
{
get { return TaskAction.content; }
set { TaskAction.content += "<div>" + value+"</div>"; }
}
/// <summary>
/// 定时器委托任务 调用的方法
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
public static void SetContent(object source, ElapsedEventArgs e)
{
Content = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
/// <summary>
/// 应用池回收的时候调用的方法
/// </summary>
public static void SetContent()
{
Content = "END: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
}

执行结果输出[Default.aspx] (此步仅仅为了观看结果才写的页面)
在Default.aspx页面 添加

<div>
<%=TaskAction.Content %>
</div>

时间: 2024-09-22 15:23:41

.net session application 实现任务计划代码的相关文章

Struts2中的数据处理的三种方式对比(Action中三种作用域request,session,application对象)

1:在Action中如何获得作用域(request,session,application)对象: 取得Map(键值对映射集)类型的requet,session,application; 对数据操作的所有方法:(即把数据保存到域中) 主要使用的是方式2和方式3: 方式1:直接获取ServletApi,核心类是ServletActionContext提供的静态的方法; 1 package com.bie.lesson04; 2 3 import javax.servlet.ServletConte

JSP中的page,request,session,application

application|js|request|session application和session比较简单,这里主要说明request和page的作用范围.application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止.session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态.生命周期:会话超时,或者服务器端强制使会话失效.request:请求作用域,就是客户端的一次请求.page:一个J

比较全的PHP 会话(session 时间设定)使用入门代码_php技巧

  对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证.如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担.因为我们并不能 只做一次验证.为什么呢?因为客户端 Cookie 中的信息是有可能被修改的.假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admi

Asp.net中安全退出时清空Session或Cookie的实例代码_实用技巧

概览: 网站中点击退出,如果仅仅是重定向到登录/出页面,此时在浏览器地址栏中输入登录后的某个页面地址如主页,你会发现不用登录就能访问.这种所谓的退出并不是安全的. 那么怎样做到安全退出呢? 那就是点击退出后清空相应的Session或Cookie. 清空Session的代码: Session.Clear(); Session.Abandon(); 清除Cookie的正确代码(假设Cookie名称为UserInfo): if (Request.Cookies["UserInfo"] !=

Struts2中操作request,session,application的方法

  Map类型--request,session,application 真实类型--HttpServletRequest,HttpSession,ServletContext Map类型是Struts对真实类型的一个封装,会将真实类型映射到Map类型中   取得上述元素有以下4种方法 1  通过ActionContext来访问request,session,application对象 2  通过实现RequestAware.SessionAware.ApplicationAware接口来访问r

session,application,cookie,viewstate,Querystring等的作用域

Session:存放于服务器,生命周期根据不同的设置而定.默认是20分钟,可以设置成无限期.主要根据客户端传递过来的SessionID来区分不同的对话.至于SessionID如何传递.目前绝大部分是只用Cookie,少部分使用url,极少部分使用表单元素.总之从客户端传递到服务器即可. application:服务器应用程序,这个的生命周期是根据应用程序进程来决定的.IIS5以前基本上是当前进程,IIS5之后是根据进程池而定.只要这些停了那么就消失了,否则就一直存在. cookie:这个是存放的

session 加入redis的实现代码_php实例

Session信息入redis Session简介 session,中文经常翻译为会话,其本来的含义是 指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session.有时候我们可以看到这样的话"在 一个浏览器会话期间,...",这里的会话一词用的就是其本义,是指从一个浏览器窗口打开到关闭这个期间①.最混乱的是"用户(客户端)在一次会话期间"这样一句话,它可能指用户的一系列动作(般情况下是同某个具体目的相关的一系列动

struts2 获得request session application的四种方式

(一)Map(在web.xml中必须使用2.1以上的配置) public class LoginAction1 extends ActionSupport { private Map request;private Map session;private Map application; public LoginAction1() {request = (Map)ActionContext.getContext().get("request");session = ActionCont

求命,,Page,Session,Application在下拉列表中都不显示了!!!

问题描述 我刚重装了系统,,装的是VS2005,,啥错也没报,,装的好好的,,但是新建网站后,,在.aspx.cs文件中,,直接输入Session,Page,Application,等这些页面对像,,出现的下拉列表中找不到这些对象了,,已经引用了System.Web,,都是默认引用的..哪位见过这种事,,这是怎么没事呀??? 解决方案 解决方案二:天呀,,刚才想重引用一下System.Web忽然发现,,System里面没有Web了...晕了,,这是怎么回事呀???解决方案三:我也想问哈