这个时间是在第一次访问网站的时候触发..
比如你发布了一个网站,,
我第一个来访问,,就会触发这个事件..
以后再有人来访问就不会触发了..
一般的,我们总是以为Application_Start是一个应用程序最开始的部分,所有我们自己写的代码的执行,都从这里开始,而所有这里以前的代码,都是微软(或者其他系统商)的代码. 尤其对一个曾经因为要调试一个Windows服务的Start事件而深深痛苦的人来说,这种感觉更加明显. 要知道,在Application_Start执行前,甚至任务管理器的进程列表里面也找不到你的程序进程.

但是事实往往不是想象的那样,偶尔不经意的一句看似无关全局的代码,却偏偏跑到Application_Start前面去了,而一句执行在应用程序初始化以前的代码,可能引发的一系列连锁反应,是毁灭性的后果.

如果简单思考一下,大家应该都想得起来,有一种代码是注定在前面执行的~~~ 这就是静态字段初始化代码,这是语言语法要求的,必须在所有代码之前,这"所有"的代码,包括系统商的代码,而系统商的代码用以启动这个Application_Start,自然静态字段初始化会发生在Application_Start之前,如果我们的初始化过程使用了全局的未初始化的资源,则会引发异常,而这个异常可能被全局异常机制处理,但是这个异常机制本身的状态都尚未初始化结束(往往因为它的状态是需要配置的,因此在
Application_Start里进行初始化)~~~ 这就引起一系列连锁反应,最终,程序整个挂掉了,因为一个可能无关痛痒的,可能一直不会用到的静态字段....
所以,慎用!!

Application_Start的更多相关文章

  1. Orchard 源码探索(Application_Start)之异步委托调用

    2014年5月26日 10:26:31 晴 ASP.NET 接收到对应用程序中任何资源的第一个请求时,名为ApplicationManager 的类会创建一个应用程序域.应用程序域为全局变量提供应用程 ...

  2. Application_Start和Application_End事件执行时间

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

  3. NopCommerce 1. NopCommerce Application_Start启动过程

    这里简单介绍整个启动过程,其他具体的后续讲解 从Application_Start中执行开始,一开始执行EngineContext.Initialize(false); EngineContext 是 ...

  4. global文件中的application_start方法中做: 定时器

    <%@ Application Language="C#" %> <%@ import Namespace="System.Data" %&g ...

  5. 关于Application_End 与 Application_Start事件触发情况的测试(待续)

    测试项目搭建 定义一个简单的Mvc项目,有如下文件: (1) public class Startup { public void Configuration(IAppBuilder app) { a ...

  6. 指定某个方法在站点的Application_Start之前执行

    指定某个函数方法在站点的Application_Start之前执行:PreApplicationStartMethodAttribute 先预备一个类,用于Start时调用 public static ...

  7. Application_Start 多次启动问题

    最近在重构一个项目,在重构过程中出现了Application_Start 多次启动的问题,查询资料说是应用程序池内的修改会导致这个问题,后来发现确实如此 因为在重构过程中,我将数据库文件(sqlite ...

  8. Application_Start事件中用Timer做一个循环任务

    protected void Application_Start(object sender, EventArgs e) { System.Timers.Timer timer = new Syste ...

  9. Dealing with exceptions thrown in Application_Start()

    https://blog.richardszalay.com/2007/03/08/dealing-with-exceptions-thrown-in-application_start/ One a ...

随机推荐

  1. The server does not support version 3.1 of the JEE Web module specification.

    使用MyEclipse2015打开MyEclipse2014编辑的项目,在服务器Tomcat 7部署时,提示"The server does not support version 3.1 ...

  2. Maven浅析-3 Ant Vs Maven

    1.什么是Ant? Ant起源是为了取代构建工具Make.它可以跨系统,建立在Java和XML的基础上,而且非常程式化. Ant更像一个脚本工具,我们必须在Ant内显示地声明做任何事情.在<ta ...

  3. php-mysql结果集函数比较

    本节主要介绍了获取查询结果集的4个函数,此处对它们进行综合比较.     ● mysql_result():优点在于使用方便:而缺点在于功能少,一次调用只能获取结果数据集中的一行记录,对较大型的数据库 ...

  4. CAS协议 - CAS URIs

    http://desert3.iteye.com/blog/1703449 2.CAS URIs:  CAS是一个基于HTTP的协议,这就要求其每一个组成部分可以通过特定的URIs访问到.所有相关的U ...

  5. Hibernate中inverse属性与cascade属性

    Hibernate集合映射中,经常会使用到"inverse"和"cascade"这两个属性.对于我这样,Hibernate接触不深和语文水平够烂的种种因素,发现 ...

  6. Look and say numbers

    地址:http://www.codewars.com/kata/53ea07c9247bc3fcaa00084d/train/python There exists a sequence of num ...

  7. 程序猿的编程神器 - vim

    一.官方文档: 当你首次安装好 Vim 之后.能够用 :help tutor 或者 :help tutor@cn 命令.进入一个30分钟的 Vim 新手教程.你也能够下载一个 Vim Document ...

  8. ListView 选择多项目返回的之前的那项

      当ListView多选时返回第一次选中的项索引 正确 定义一个变量 =-1 表示第一次没选任何一项   private int FirstSelectedIndex =-1;     更新Firs ...

  9. mysql in 的两种使用方法

    简述MySQL 的in 的两种使用方法: 他们各自是在 in keyword后跟一张表(记录集).以及在in后面加上字符串集. 先讲后面跟着一张表的. 首先阐述三张表的结构: s(sno,sname. ...

  10. Linux操作系统分析 ------------------中国科技大学

    http://teamtrac.ustcsz.edu.cn/wiki/Linux2014