如果给ASP添加应用程序添加一个新项,就会进入Add New Iteam对话框。在这个对话框中可以给应用程序添加一个Global Application Class。这会添加一个Global.asax文件。该文件为该应用程序的全局变量,保存应用程序的的事件,对象和变量,所有这些都可以在应用程序的返回内访问。

  与aspx文件页面中页面级的事件一样,也可以在asax文件中出来应用程序中的事件。其中有几个重要的方法。

  1、Application_Start:在应用程序接受到第一个请求时调用,这是在应用程序中给应用程序级的变量赋值或者指定所有用户都必须维护的状态理想位置。

  2、Session_Start:类似于Application_Start事件,但

是这个事件在用户第一次访问应用程序时调用。例如Application_Start事件只在接收到第一个请求时引发,第一个请求会让应用程序运行,而Session_Start事件会在每个终端用户第一次向应用程序发出的请求时调用。

  3、Application_BegionRequest:它没有列在VS2008模板中,但该事件会在每个请求发出之前引发,也就是说在请求到达服务器,且得到处理之前,会引发Application_BeginingRequest事件并在处理该事件之前处理该事件。

  4、Application_AuthenticateRequest:每个请求都

会触发此事件,允许用户为请求建立定制的身份验证。

  5、Application_Error:在应用程序的用户抛出错误的时候触发。它适合用于提供应用程序级的错误的处理,或者把错误记录在指定的文件夹内的txt文件中,这样可以在调试的时候进行查找错误的存在的页面的地址与错误的信息。或者把错误记录到服务器中的事件日志中。

  6、Application_End:在应用程序结束的

时候触发该事件,大多数的程序员不常使用此事件,因为ASP.NET已经能很好的完成了关闭和清理剩余对象的任务。当然在应用程序运行的时候进行修改web.config文件,这会引发Application_End事件,并在事件日志中添加日志。

以下是一个是一个完整的例子:使用与调试程序,运行程序的时候进行调试会把错误写在指定文件内,利于程序的调试,发现错误的存在。

     /// <summary>/// 必需的设计器变量。/// </summary>private IContainer components = null;public Global(){InitializeComponent();}    protected void Application_Start(object sender, EventArgs e){//进入系统的时间Application["AppStartTime"] = DateTime.Now;}protected void Session_Start(object sender, EventArgs e){//对session缓存的记忆Session["Style"] = 1;Session.Timeout = 180; }protected void Application_BeginRequest(object sender, EventArgs e){}protected void Application_AuthenticateRequest(object sender, EventArgs e){}void Application_Error(Object sender, EventArgs e){Exception exception1 = this.Server.GetLastError().GetBaseException();if (exception1.GetType() == typeof(HttpException)){int i = ((HttpException)exception1).GetHttpCode();if (i == 404){//跳转到错误页面Response.Redirect("~/error.htm", false);return;}}string errortime = "发生时间:" + DateTime.Now.ToString();string errorAddress = "发生页面:" + Request.Url.ToString();string errmessage= "异常信息:" + exception1.Message;string errorsource = "错误源:" + exception1.Source;Server.ClearError();System.IO.StreamWriter writer = null;try{lock (this){string year = DateTime.Now.Year.ToString();string month = DateTime.Now.Month.ToString();string day = DateTime.Now.Day.ToString();string path = string.Empty;string filename = DateTime.Now.ToString("yyyyMMdd") + ".txt";/ /将错误保存到指定的文件中获取用户的信息path = Server.MapPath("~/Error/") + year + month + day;if (!System.IO.Directory.Exists(path)){System.IO.Directory.CreateDirectory(path);}System.IO.FileInfo fileinfo = new System.IO.FileInfo(path + "/" + filename);writer.WriteLine("        用        户        IP:" + Request.UserHostAddress);writer.WriteLine(errortime);writer.WriteLine(errorAddress);writer.WriteLine(errinfo);writer.WriteLine(errorsource);writer.WriteLine(errortrace);}}catch{}finally{if (writer != null)writer.Close();}Response.Redirect("~/error.htm", false);}protected void Session_End(object sender, EventArgs e){}protected void Application_End(object sender, EventArgs e){}#region Web 窗体设计器生成的代码/// <summary>/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// </summary>private void InitializeComponent(){this.components = new Container();}#endregion

转载于:https://www.cnblogs.com/summay/archive/2013/04/11/3015405.html

ASP中关于全局页面的作用 asax文件相关推荐

  1. uniapp 中设置全局页面背景色

    uniapp 中设置全局页面背景色 提示:以下是本篇文章正文内容,下面案例可供参考 未生效 : 在pages.json里面设置单页面背景色,这种是不行的,只能在页面内生效 方法1: pages.jso ...

  2. 操作系统中的全局页面置换算法

    1 全局页面置换算法 以上页面置换算法都是针对单一的应用程序的页面置换算法, 且有一个前提, 就是给单一应用程序分配的物理页帧数量是一定的. 现实中, 给一个应用程序分配的物理页帧数, 该程序产生的缺 ...

  3. [转帖]ASP中得到当前页面完整URL的方法

    可以这样构造当前页面完成的URL: "http://" & Request.ServerVariables("HTTP_HOST") & Req ...

  4. asp 中使用Ftp.exe 上传大文件

    '参数说明:FTP 服务器 :帐号 : 密码 :要上传的文件名(需要完整路径),FTp虚拟目录名称  Function upFile(ftp_address, ftp_username, ftp_pa ...

  5. ASP中如何在退出一个页面时自动清空session变量

    第一步.在<head></head>间加入 <script language="javascript"> function loginout() ...

  6. ASP.NET中使用Global.asax文件

    转:http://www.cnblogs.com/ly5201314/archive/2008/09/23/1296868.html ASP.NET中使用Global.asax文件 Global.as ...

  7. 在ASP.NET中使用Global.asax文件

    文章关键字:ASP.Net,应用层,模块 概述 Global.asax 位于应用程序根目录下.虽然 Visual Studio .NET 会自动插入这个文件到所有的 ASP.NET 项目中,但是它实际 ...

  8. asp服务器端作用,ASP中的服务器端脚本代码由()解释执行。 - 问答库

    问题: [单选] ASP中的服务器端脚本代码由()解释执行. A . WEB服务器 B . 应用程序服务器 C . 浏览器 D . 专用的浏览器插件程序 Cookie的应用是通过()对象和()对象来实 ...

  9. 如何在 ASP.NET Core 中实现全局异常拦截

    异常是一种运行时错误,当异常没有得到适当的处理,很可能会导致你的程序意外终止,这篇就来讨论一下如何在 ASP.Net Core MVC 中实现全局异常处理,我会用一些 样例代码 和 截图 来说明这些概 ...

最新文章

  1. 物联网下的数据传输,Python 就能搞定!
  2. Java8的集合:HashMap的实现原理
  3. 配置安全的Impala集群集成Sentry
  4. JAVA关系表达式解析微引擎
  5. Idea中启动tomcat服务,提示缺少一个tcnative-1.dll文件
  6. 牛客 - 导航系统(最小生成树+Floyd)
  7. 如何用 J-Link 来串口调试?
  8. 深入理解:一文讲透RabbitMQ
  9. C++文件交互(txt、excel)
  10. *【ZOJ - 3781】Paint the Grid Reloaded(dfs求连通块缩点,bfs求最短路,建图技巧)
  11. python画画用哪库好_数据可视化哪款工具更好用?对比7款Python 数据图表工具的性能...
  12. KX3552驱动的安装大九
  13. js 根据公历日期 算出农历_JS简单获取当前日期和农历日期的方法
  14. 分位数回归--基于R
  15. 箭头函数写法_JavaScript|箭头函数的用法
  16. Webtoos 仿Q+云桌面框架
  17. Unity UGUI Button 中文详解-Chinar
  18. linux操作系统下 c语言编程入门
  19. 什么是对象?对象的属性和存储又是什么?
  20. 你以为买到了牛逼的Python课程,其实被割了韭菜!

热门文章

  1. 禁止Win7系统自动安装驱动程序
  2. c语言修仙角色,C语言修仙手游-C语言修仙手游安卓版V7.4.0预约_第一手游网
  3. java修改cookie的值_Java 对 Cookie增删改查的实现示例
  4. CAN总线简明易懂教程(一)
  5. 手动制作自己想的语谱图
  6. jittor和pytorch生成网络对比之bicyclegan
  7. java中的equals方法
  8. App-IOS与Android弱网环境测试
  9. Activity与Fragment的生命周期详解
  10. 【Ubuntn】Ubuntu随笔