ASP Global.asax文件,全局应用程序类
2018-01-01 14:17
316 查看
Global.asax 文件名称不能改,并且要放在网站的根目录下。
1、全局文件是对Web应用生命周期的一个事件响应的地方
2、将Web应用启动时初始化的一些代码写到Application_Start中。应用关闭的时候Application_End调用。
3、当一个Session启动的时候Session_Start被调用,Session结束(用户主动退出或者超时结束)Session_End被调用。
4、当一个用户请求来的时候Application_BeginRequest方法被调用
5、当应用中出现未捕获异常,Application_Error被调用,用HttpContext.Current.Server.GetLastError()获得异常信息,然后用Log4Net记录到日志中。
Global.asax.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
namespace XXX.WebApp
{
public class Global : System.Web.HttpApplication
{
/// <summary>
/// Web应用程序第一次启动时调用该方法,并且该方法只被调用一次。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Start(object sender, EventArgs e)
{
}
/// <summary>
/// 开始会话。(用户通过浏览器第一次访问我们网站中的某个页面,这时建立会话,但是当该用户通过浏览器再次访问其它的页面时,该方法不会被执行。SessionId)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Session_Start(object sender, EventArgs e)
{ //Application:服务端的状态保持机制。放在该对象中的数据是共享的。 与Cache相同,只是Cache本身就有加锁解锁的机制
Application.Lock(); //Application需要手动加锁解锁。
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)
{
}
/// <summary>
/// 全局的异常处理点。未捕获的异常(未被try catch的异常)出现时,会调用该函数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Error(object sender, EventArgs e)
{
//Exception ex = HttpContext.Current.Server.GetLastError();
///ex.Message
///写到日志中。
//Log4Net
}
/// <summary>
/// 会话结束(与用户的连接结束)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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)
{
}
}
}
1、全局文件是对Web应用生命周期的一个事件响应的地方
2、将Web应用启动时初始化的一些代码写到Application_Start中。应用关闭的时候Application_End调用。
3、当一个Session启动的时候Session_Start被调用,Session结束(用户主动退出或者超时结束)Session_End被调用。
4、当一个用户请求来的时候Application_BeginRequest方法被调用
5、当应用中出现未捕获异常,Application_Error被调用,用HttpContext.Current.Server.GetLastError()获得异常信息,然后用Log4Net记录到日志中。
Global.asax.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
namespace XXX.WebApp
{
public class Global : System.Web.HttpApplication
{
/// <summary>
/// Web应用程序第一次启动时调用该方法,并且该方法只被调用一次。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Start(object sender, EventArgs e)
{
}
/// <summary>
/// 开始会话。(用户通过浏览器第一次访问我们网站中的某个页面,这时建立会话,但是当该用户通过浏览器再次访问其它的页面时,该方法不会被执行。SessionId)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Session_Start(object sender, EventArgs e)
{ //Application:服务端的状态保持机制。放在该对象中的数据是共享的。 与Cache相同,只是Cache本身就有加锁解锁的机制
Application.Lock(); //Application需要手动加锁解锁。
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)
{
}
/// <summary>
/// 全局的异常处理点。未捕获的异常(未被try catch的异常)出现时,会调用该函数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Error(object sender, EventArgs e)
{
//Exception ex = HttpContext.Current.Server.GetLastError();
///ex.Message
///写到日志中。
//Log4Net
}
/// <summary>
/// 会话结束(与用户的连接结束)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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)
{
}
}
}
相关文章推荐
- ASP.NET全局文件Global.asax用法分析
- ASP.net全局程序文件Global.asax用法分析
- ASP.NET中Global.asax全局应用程序类
- ASP.net--全局程序文件:Global.asax
- ASP.net全局程序文件Global.asax用法分析
- ASP.NET Global.asax 文件的详解(转)
- 使用Asp.Net Global.asax 文件;把代码写到.cs文件
- ASP.NET中Global.asax 文件是什么?
- log4net 高级运用之:在页面级捕获可预见的异常,在全局应用程序类Global.asax中捕获未知的异常(更新log4net的样式和配置)
- asp.net 文件说明--Global.asax
- 使用ASP.NET Global.asax 文件
- 使用ASP.NET Global.asax 文件
- 使用ASP.NET Global.asax 文件
- ASP.NET 3.5核心编程学习笔记(27):global.asax文件
- Global.asax(全局应用程序类)
- ASP.NET MVC中的Global.asax文件
- 使用ASP.NET Global.asax 文件<转载>
- ASP.NET中的Global.asax应用程序文件简介
- 使用ASP.NET Global.asax 文件
- Asp.Net中global.asax文件的描述