Global.asax是我们的底层文件,第一次的IIS请求都会先去执行它里面的文件,所以学会它里面的函数是非常有必要的。而且我们总是忽略这里的知识点,总觉得这是不必须的,其实我们错了,这里才是程序的根本。

文件代码:

/// <summary>
/// 所有的应用,状态,程序被访问,用户退出,都可以找到。,
/// </summary>
public class Global : System.Web.HttpApplication
{
/// <summary>
/// 这里是IIS请求一开始执行,就执行一遍这个方法。后面还有个Application_End方法。
/// </summary>
/// 程序启动的时候都会执行这个函数(一次),相当于Main函数,
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Start(object sender, EventArgs e)
{
File.AppendAllText("c:/1.txt",DateTime.Now.ToString()+"Application_Start");
}
/// <summary>
/// 这里的Session是服务器端为每一个浏览器保存数据开辟的临时存储空间,当浏览器关闭或者切换用户就会重新开辟内存来保存Session
/// 每一个浏览器的访问网页都会有一个有一个Session
/// 一个浏览器的一个用户公用了一个Session ,当用户主动退出的时候
/// </summary>
/// 统计当前在线人数
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Session_Start(object sender,EventArgs e)
{
//这里相当于建立的临时会话一样。
HttpContext.Current.Session.Abandon();//销毁Session ,15分钟自动取消
}
/// <summary>
/// 请求的时候做一些处理。(每一个应用都会触发这里)
/// </summary>
/// <param name="sender"></param>
/// 查看当前请求的URL,通过这个(HttpContext.Current.Request.URL)在
/// 快速监听里面查看总共请求了哪些URL
/// <param name="e"></param>
protected void Application_BeginRequest(object sender,EventArgs e)
{
//实现功能,屏蔽IP
if (HttpContext.Current.Request.UserHostAddress== "192.168.1.102")
{
HttpContext.Current.Response.Write("这里就可以把自己电脑的IP地址屏蔽掉了。");
}
else
{
HttpContext.Current.Response.Write("");
}
//防盗猎
} protected void Application_AuthentiateRequest(object sender,EventArgs e)
{ }
/// <summary>
/// 异常的处理模块
/// </summary>
/// 调用这里的函数来曝出异常信息
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Error(object sender,EventArgs e)
{ } /// <summary>
/// 断开会话,15超时的时候调用这个
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Session_End(object sender,EventArgs e)
{ }
/// <summary>
/// 程序被关闭的时候执行一次,IIS被关闭才执行。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_End(object sender,EventArgs e)
{ }
}

函数的说明:

Global.asax这个文件是执行IIS请求必进过的文件,是非常重要。对于Web应用而言是声明周期的一个事件响应的地方。 Global类,它继承自System.Web.HttpApplication,它的作用是定义 ASP.NET 应用程序中的所有应用程序对象共有的方法、属性和事件。 此类是用户在 Global.asax 文件中所定义的应用程序的基类。*:Application_Start() 此函数是我们程序刚启动的时候调用的函数,相当于我们C语言时候的Main函数一样,都是程序一开始执行的函数,可以将一些需要初始化的函数,方法,写在这里,比如路由,日志,IOC,DI,区域,文件等,关闭的时候有个对应的方法Application_End()函数

protected void Application_Start()
{
EngineContext.Initialize(false); var dependencyResolver = new ControllerDependencyResolver();
DependencyResolver.SetResolver(dependencyResolver);
GlobalConfiguration.Configuration.DependencyResolver = dependencyResolver;
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
protected void Application_End(object sender,EventArgs e)
{ }

*:Application_Error() 异常处理函数,当应用程序中出现未捕获的异常,此函数被调用,这里用HttpContext.Current.Server.GetLastError()来获得异常信息,可以将其保存到log4Net记录到日志中。

protected void Application_Error(object sender, EventArgs e)
{
var exception = Server.GetLastError();
LogException(exception); }

*:Session_Start() 服务端Session信息,这里是每一个浏览器去访问服务器,服务器都会为其创建内存空间,即Session来保存它的一些信息,我们打开的一些网页都在 一个Session中进行访问。(好像是15分钟自动掉线,相当于一次时间有限的会话。)一个浏览器的一个用户公用一个Session,当用户主动退出的 时候Session就会被关闭,调用下面的函数来关闭它,Session_End()。可以在它里面来统计当前在线人数等。

HttpContext.Current.Session.Abandon();//销毁Session   ,15分钟自动取消
protected void Session_Start(object sender,EventArgs e)
{
//这里相当于建立的临时会话一样。
HttpContext.Current.Session.Abandon();//销毁Session ,15分钟自动取消
}
protected void Session_End(object sender,EventArgs e)
{ }

*:Application_BeginRequest() 请求的时候都会访问这个函数,每一个应用也会触发这里,我们可以通过下面的函数来查看当前的请求URL, (HttpContext.Current.Request.URL)。可以在快速监听里面进行查看。看一个网页总共请求了几次URL。在这里可以屏蔽 IP,防盗猎图片等功能。

protected void Application_BeginRequest(object sender,EventArgs e)
{
//实现功能,屏蔽IP
if (HttpContext.Current.Request.UserHostAddress== "192.168.1.102")
{
HttpContext.Current.Response.Write("这里就可以把自己电脑的IP地址屏蔽掉了。");
}
else
{
HttpContext.Current.Response.Write("");
}
//防盗猎
}

*:这个函数我也不是很清楚,等以后学习的时候在补吧。

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

Global.asax文件说明的更多相关文章

  1. .net Global.asax文件使用

    一.Application_start: 第一个访问网站的用户会触发该方法. 通常会在该方法里定义一些系统变量,如聊天室的在线总人数统计,历史访问人数统计的初始化等等均可在这里定义. Applicat ...

  2. Global.asax 文件是什么

    Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序安全性以及其它一些任务.下面让我们详细看 ...

  3. ASP.NET MVC中的Global.asax文件

    1.global.asax文件概述 global.asax这个文件包含全局应用程序事件的事件处理程序.它响应应用程序级别和会话级别事件的代码. 运行时, Global.asax 将被编译成一个动态生成 ...

  4. 转Global.asax文件

    Global.asax 文件是什么   Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序 ...

  5. ASP.NET中Global.asax 文件是什么?

    Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序安全性以及其它一些任务.下面让我们详细看 ...

  6. Asp.net MVC Global.asax文件

    global.asax文件概述 global.asax这个文件包含全局应用程序事件的事件处理程序.它响应应用程序级别和会话级别事件的代码. 运行时, Global.asax 将被编译成一个动态生成的 ...

  7. Global.asax 文件是什么(转)

    原文链接:http://www.cnblogs.com/I-am-Betty/archive/2010/09/06/1819558.html MSDN :https://msdn.microsoft. ...

  8. Global.asax文件的说明

    每个应用程序可以包含一个特殊的目录(/bin)和两个特殊的文件(Web.config和Global.asax) Global.asax文件的使用: 作用:处理应用程序范围内的事件,声明应用程序范围的对 ...

  9. Global.asax 文件说明

    引用 来自  http://www.cnblogs.com/jianshao810/archive/2011/02/03/1948912.htm 在网上找了N多相关的东西总说的不够细,现在终于找到了. ...

随机推荐

  1. PHP静态化

    一.判断大型网站的标准 1.pv值(page views)网站浏览量: 概念:一个网站,所有的页面,在一天24小时内,被访问的总量,达到千万级别,或者几百万以上. 2.uv值(unique visit ...

  2. PHP基础知识之数组

    数组的定义: array( key => value , ... ) // 键(key)可以是一个整数或字符串,键可以省略,默认从0开始索引 // 值(value)可以是任意类型的值或者简写的方 ...

  3. 移动web 公用样式

    /*! normalize.css v3.0.2 | MIT License | github.com/necolas/normalize */ /** * 1. Set default font f ...

  4. 动态调用webservice(部分转载)

    动态调用webservice,做个笔记: public class WSHelper { /// < summary> /// 动态调用web服务 /// < /summary> ...

  5. ajax下载多文件,并且打包 C#中 ,文件批下载zip

    //提交要下载的文件 $.ajax({ url:"/sub/ZipFile.aspx", data:"paras="+datas, type: 'HEAD', ...

  6. iOS索引列开发详解

    做苹果开发的朋友在地区列表可能会遇到在页面的右侧有一列类似与导航的索引列,这次有机会遇到了,细细研究了一下,原来没有想象中的困难,只需要简单的几步就能做出自己的索引列.本来想和搜索条在一块讲解,后来考 ...

  7. vue.js 学习笔记

    /*属性*/ 标签内的属性都用 :attr="xxx" 的形式 /*模板*/ {{ msg }} -> 绑定数据 {{ *msg }} -> 数据只绑定一次 {{{ m ...

  8. 在shell下,用命令将U盘挂载到ubuntu上,并将文件copy到U盘里面

    首先将鼠标定位到ubuntu上,然后插上U盘,这时候先用指令: fidsk -l 查看一下U盘,(这是应该有一个盘符了) 如果没有的话,就尽享下面的步骤: 首先使用命令查看是那个分区,在U盘插入前后, ...

  9. js中的 && 和 ||

    js里面&&和||用法容易绕进去. 总结一下,遵循短路原则. &&就是去找false的选项,||就是去找true的选项. 比如 a&&b 如果 a为fa ...

  10. linux下设置固定IP

    编辑网卡配置文件 vi /etc/sysconfig/network-script/ifcfg-eth0 进入编辑模式 按i键进行编辑修改 DEVICE=eth0 #物理设备名 IPADDR=192. ...