如何在ASP.NET应用程序中初始化
作者:网络转载 发布时间:[ 2013/3/26 10:31:01 ] 推荐标签:
ASP.NET 4.0新增的初始化方法
为了让一些类库能自动执行一些初始化,ASP.NET提供了一种新方法,允许为程序集指定一个PreApplicationStartMethodAttribute
为了演示这种用法,我将前面的示例(VS2008开发)移到一个类库中(用VS2012开发)并设置类库的命名空间为InitClassLibrary1。
然后,我添加了一个调用类:
namespace InitClassLibrary1
{
public class Class1
{
public static void InitApp()
{
AppInitializer.Init();
}
}
}
后,我们可以在InitClassLibrary1类库的AssemblyInfo.cs文件中,增加一个Attribute
[assembly: System.Web.PreApplicationStartMethod(
typeof(InitClassLibrary1.Class1), "InitApp")]
当然了,你也可以直接像下面设置,免得多创建一个类型出来:
[assembly: System.Web.PreApplicationStartMethod(
typeof(InitClassLibrary1.AppInitializer), "Init")]
这样设置后,再运行网站,你也能发现我们的初始化代码确实运行了:黄页仍然在显示。
各种初始化方法的差别
前面介绍了4种在ASP.NET执行初始化的方法,你或许想知道它们到底有哪些区别呢?
由于它们都能实现初始化的操作,它们的差别也只有执行的时刻不同而已,我们可以用简单的方法区分它们的调用位置:看异常的调用堆栈信息。
AppInitialize方法异常时的调用堆栈信息:

HttpModule异常时的调用堆栈信息:


sales@spasvo.com