在ASP.NET应用启动的时候初始化的几种方法
ASP.NET 4.0 之前,有两种方法:通过Global.asax 中的 Application_Start 事件启动,或者通过定义在 App_Code 文件夹中任意类中的AppInitialize 静态方法。方法的原型定义如下:
- public static void AppInitialize()
AppInitialize 方法是 ASP.NET 中一个特殊的方法,在网站应用程序启动之后进行初始化的时候将被首先调用。这个方法只能出现一次,只能出现在 App_Code 中定义的一个类中,如果出现在两个类中,ASP.NET 将会报编译错误。这个方法甚至不能定义在一个程序集中定义的类中。
在ASP.NET 4.0中,有一个很有趣的特色:Pre Application Start Method,新增的Pre Application Start Method机制则稍微改变了这个流程(原本在ASP.NET中,当应用程序起始时首先被请求的是Global.asax中的Application_Start函数),当某个Assembly标示了PreApplicationStar Method Attribute后,ASP.NET会在应用程序起始时呼叫指定的函式,这个动作发生在Global.asax中的Application_Start之前,而且是自动扫描BIN目录中的的Assemblys来进行的。具体可以参考ASP.NET 4.0 – Pre Application Start Method。
总结一下,有三种方法可以用来初始化ASP.NET应用程序:
1、在Global.asax中的Application_Start函数里完成初始化,这个也是用的最多的,不具体说明了。
2、在App_Code 文件夹中任意类中的AppInitialize 静态方法. App_Code目录是一个非常特殊的目录,特殊到很多规则你都不知道,ASP.NET对这个目录的文件会做一些特殊的处理。就比如AppInitialize静态方法的执行规则:
- AppInitialize静态方法必须是在App_Code目录下。
- AppInitialize静态方法在App_Code目录下不允许被定义两次。
- AppInitialize方法在编译时就被特殊处理了,不能再外部的应用程序集dll里定义。
3、在PreApplicationStartMethod 我们在上边初始化之前完成网站的初始化,这样,我们可以在一个类库项目中使用这个特征来标记需要在网站中提前初始化的方法。具体可以参考ASP.NET 4.0 – Pre Application Start Method。
在ASP.NET应用启动的时候初始化的几种方法相关推荐
- C++对类中字符串成员进行初始化的两种方法以及友元函数的使用
在C++之中,如果要建立一个类,且类中需要有字符串数据成员,我们可以把该成员声明成两种类型. 第一种方法:使用头文件string,把字符串数据成员声明为string类的对象,用这种方法对字符串操作十分 ...
- C语言常见问题——数组初始化的四种方法
有一回,小易同学对我说:"你学过编程吗",我略略点一点头.他说,"学过编程,我便考一考你,在使用数组之前,应不应该初始化数组?" 我暗想,这么简单的问题,也配考 ...
- [ASP.NET] 限制上传文件类型的两种方法(转)
通常,为了防止因用户上传有害文件(如木马.黑客程序)引发的安全性问题,Web程序都会对用户允许上传的文件类型加以限制.而本文将要介绍的就是如何在ASP.NET应用程序中利用Web Control的内置 ...
- java中如何启动一个新的线程三种方法
java开启新线程的三种方法: 方法1:继承Thread类 1):定义bai一个继承自Java.lang.Thread类的du类A. 2):覆盖zhiA类Thread类中的run方法. 3):我们编写 ...
- C语言中字符数组初始化的几种方法
欢迎关注我的微信公众号:CurryCoder的程序人生 1.C语言中的字符数组初始化 在C语言中,字符串是当做字符数组来处理的:所以字符串有两种声明方式,一种是字符数组,一种是字符指针. 1.1 直接 ...
- linux c 结构体初始化的四种方法
定义: struct InitMember {int first:double second:char* third:float four; }; 方法一:定义时赋值 struct InitMembe ...
- java map初始化方式_java中Map和List初始化的两种方法
第一种方法(常用方法): //初始化List List list = new ArrayList(); list.add("string1"); list.add("st ...
- asp mysql 更新数据_Asp更新数据库的几种方法
Asp更新数据库的几种方法 asp中插入与修改数据的几种方式.为了方便解说,我们先建立一个名为test的表,表内只有两个数据 项:username和email,分别用来存储用户名与邮箱地址. 1.利用 ...
- c++vector初始化的几种方法
1.练习1 #include <iostream> #include <string> #include <vector> #include <deque&g ...
- (转,记录用)jQuery页面加载初始化的3种方法
jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: [javascript] view plainco ...
最新文章
- [转]启动Tomcat提示:指定的服务未安装
- Hibernate的主键生成器generator(zhuan)
- shell grep 变量_Shell应用:巧用xargs 轻松实现上万文件的筛选压缩
- MFC中小笔记(四)
- python是外部还是编程_Python网络编程(绑定到外部地址)
- C与java通讯小结
- 数据结构学习之选择排序
- nginx修改upstream不重启的方法(ngx_http_dyups_module模块)
- 一句 Task.Result 就死锁, 这代码还怎么写?
- 图论:dij算法优化:双端队列及详细证明
- DB2连接不上mysql数据库_一次DB2数据库连接失败(SQLSTATE=08001)的解决方法
- phpcmsV9 首页调用全站最新文章(受模型限制)
- 数据结构 5-0 树与二叉树总结
- 中文短文本的实体识别实体链接,第一名解决方案
- linux设备驱动(一)
- KITTI数据集Raw Data与Ground Truth序列00-10的对应关系,以及对应的标定参数
- 荣耀8青春版android,华为荣耀8青春版有几个版本?荣耀8青春版低配版/标准版/高配版区别对比评测...
- Visual Studio 2005 Service Pack 1 (SP1)
- Code39码和Code93码的区别
- 【经验分享】BMPR文件及其打开软件Balsamiq Wireframes的下载和安装
热门文章
- java 象限分析_用四种象限分析你(未来的人生走向)
- frdora10_a8_linux,硬盘安装fedora10
- 蓝桥杯2019年第十届C/C++国赛B组 题B-质数拆分(素数筛选+01背包问题)
- Linux执行fastqc报错Exception in thread “main“ java.awt.HeadlessException: No X11 DISPLAY variable was s
- input type=file与cursor:pointer的兼容性问题
- 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。...
- 【转】如何使用瑞萨E10A调试SH系列不带片内FLASH的单片机
- NSURLConnection实现断点续传
- 锋利的jQuery-4--图片切换的一个例子(自己理解后写的,以备忘记时看看)
- Demo之JavaEE的Web中数据分页显示