如何在ASP.NET应用程序中初始化
作者:网络转载 发布时间:[ 2013/3/26 10:31:01 ] 推荐标签:
记得以前做项目时,遇到过这种情况,当时感到很奇怪,为什么刷新一下没黄页了,不过后面的错误很折腾人了,终也让我总结了这个教训。所以我建议:如果在初始化阶段出现了异常,干脆别让程序继续运行了,每个请求都直接显示黄页,直到排除故障为止。
如何保证初始化异常一直显示?
当初始化发生异常时,如何保证初始化异常一直显示呢?
方法其实并不难,我们需要修改一下代码:
private static Exception s_initException;
void Application_Start(object sender, EventArgs e)
{
try {
AppInitializer.Init();
}
catch( Exception ex ) {
// 记下初始化的异常。
s_initException = ex;
}
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
// 如果存在初始化异常,抛出来。
// 直到开发人员发现这个异常,并已解决了异常为止。
if( s_initException != null )
throw s_initException;
}
现在不管有多少个用户来访问,或者第一个访问者刷新浏览器多少次,都会看到同样的异常信息:
说明:Global.asax的这个问题在IIS7以上版本的集成模式下并不存在。
还有哪些初始化方法?
除了Global.asax中的Application_Start,还有哪些方法可以在ASP.NET程序执行初始化的任务呢?
目前我知道的还有另三种方法:
1、App_Code中的AppInitialize方法。
2、写个专用的HttpModule。
3、ASP.NET 4.0的PreApplicationStartMethodAttribute
App_Code中的AppInitialize方法
ASP.NET允许我们在App_Code中的任何一个类型定义一个AppInitialize方法,用它也能执行初始化的任务。
public class Class1
{
public static void appInitialize()
{
AppInitializer.Init();
}
}
如果我此时再次运行示例程序(已注释掉Global.asax中的代码),会看到以下显示:
显然,我们期望的初始化代码确实被调用了。
这个AppInitialize方法有什么限制呢?
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11