WebForm的Global.asax文件
2021-07-14 17:07
标签:cep 用户 unlock control 继承 log4net 微软 -- 开始 WebForm的Global.asax文件 标签:cep 用户 unlock control 继承 log4net 微软 -- 开始 原文地址:http://www.cnblogs.com/BOSET/p/7074762.htmlpublic class Global : System.Web.HttpApplication
{
/// Web应用程序第一次启动时调用该方法,并且该方法只被调用一次(就是部署到IIS上之后第一次启动这个程序的时候调用一次)。
protected void Application_Start(object sender, EventArgs e)
{
}
/// 开始会话。(用户通过浏览器第一次访问我们网站中的某个页面,这时建立会话,但是当该用户通过浏览器再次访问其它的页面时,该方法不会被执行)
/// (应用场景:统计网站在线人数,注意点就是,一定要把Application写到数据库)
protected void Session_Start(object sender, EventArgs e)
{
// Application:服务端的状态保持机制。放在该对象中的数据是共享的,这点跟Cache一样,但是Application是要程序员手动加锁解锁,但是Cache不一样,内部微软都自动加锁解锁
Application.Lock();
int count = Convert.ToInt32(Application["count"]);
count++;
Application["count"] = count;
Application.UnLock();
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
/// 全局的异常捕捉,在MVC中我们经常都是写一个BaseController,然后每个控制器都继承这个BaseController,然后都统一在BaseController这个控制器里面完成捕捉错误,然后写到log4net这个第三方框架上。但是在WebForm里面,我们要捕捉错误就在这个方法完成
protected void Application_Error(object sender, EventArgs e)
{
//1.0通过下面这个方法捕捉到错误
//Exception ex = HttpContext.Current.Server.GetLastError();
//2.0下面就跟MVC一样,把错误ex.Message写到Log4Net上
}
/// 会话结束(应用场景:统计网站在线人数,注意点就是,一定要把Application写到数据库)
protected void Session_End(object sender, EventArgs e)
{
Application.Lock();
int count = Convert.ToInt32(Application["count"]);
count--;
Application["count"] = count;
Application.UnLock();
}
protected void Application_End(object sender, EventArgs e)
{
}
}