博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Global.asax文件说明
阅读量:6760 次
发布时间:2019-06-26

本文共 4114 字,大约阅读时间需要 13 分钟。

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

 

文件代码:

 

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

 

转载于:https://www.cnblogs.com/saywa3b/p/5809434.html

你可能感兴趣的文章
C#中为什么需要装箱拆箱操作?
查看>>
PHP类中一般方法与静态方法的疑问
查看>>
[转]PHP花括号变量
查看>>
【Opencv学习】摄像头采集、录像、截图小工具
查看>>
Fedora16安装中文语言包和中文输入法
查看>>
iframe加载完成监控兼容IE/FF/Chrome
查看>>
JS:1.1,消息框(alert,confirm,prompt)
查看>>
quartz
查看>>
Windows 8实用窍门系列:14.windows 8中粘贴板(剪切板)的使用
查看>>
长连接API小心“窜包”问题
查看>>
开发者基础知识游戏,共10关,欢迎挑战
查看>>
ASP.NET中 RadioButtonList(单选按钮组)的使用
查看>>
SESSION 丢失
查看>>
DES可逆加解密
查看>>
图解Undo原理
查看>>
Kinect for Windows SDK V1.7 发布
查看>>
JAVA中的参数按值传递与按引用传递
查看>>
与Recommender System相关的会议及期刊
查看>>
如何理解ip路由和操作linux的路由表
查看>>
WCF的几种寄宿方式 ( 转)
查看>>