如何在ASP.NET应用程序中初始化
作者:网络转载 发布时间:[ 2013/3/26 10:31:01 ] 推荐标签:
每个程序都需要初始化的过程,用来读取配置或者设置一些运行环境(变量),对于ASP.NET程序来说,又该在哪里执行初始化的任务呢?
我想应该绝大多数人都知道在Global.asax中执行初始化的过程,然而有些细节是我们需要关注的。
本文用例
在这篇博客的示例代码中,AppInitializer包含了网站的初始化的实现代码:
public static class AppInitializer
{
public static ConnectionStringSettings MyNorthwindConnectionSetting { get; private set; }
public static void Init()
{
// 读取连接字符串。
LoadConnectionString();
// 设置SQLSERVER缓存依赖通知。
SetSqlDependency();
// 其它的初始化操作。
OthersInit();
}
static void LoadConnectionString()
{
ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings["MyNorthwind"];
if( setting == null )
throw new ConfigurationException("没有配置MyNorthwind连接字符串。");
if( string.IsNullOrEmpty(setting.ConnectionString) )
throw new ConfigurationException("没有为MyNorthwind连接字符串指定内容。");
if( string.IsNullOrEmpty(setting.ProviderName) )
throw new ConfigurationException("没有为MyNorthwind连接字符串指定ProviderName 。");
// 保存读取到的连接字符串,供程序使用。
MyNorthwindConnectionSetting = setting;
}
static void SetSqlDependency()
{
// 判断SQLSERVER版本是否为 2005以上版本,
// 是否开启Service Broker的检查代码不列出了。
SqlDependency.Start(MyNorthwindConnectionSetting.ConnectionString);
}
static void OthersInit()
{
// 其它的初始化操作。
// 例如:
// 1. 加载必要的缓存数据。
// 2. 检查上传目录是不存在。
// 3. ...................
}
}
这段代码的意图很清楚,一定要确保正确的配置了数据库连接字符串,否则以异常的形式报告出来。
示例程序还有一个页面,Default.aspx
<body>
<form id="form1" runat="server">
<div>
<h1>User Login</h1>
</div>
<p style="line-height: 150%;">
UserName: <asp:TextBox ID="txtUserName" runat="server" Width="200px" Text="Fish Li"></asp:TextBox><br />
Password: <asp:TextBox ID="txtPassword" runat="server" Width="200px" TextMode="Password"></asp:TextBox><br />
<asp:Button ID="btnLogin" runat="server" Text="登录" OnClick="btnLogin_Click" />
</p>
</form>
</body>
其实是一个登录页面,后台代码为:
protected void btnLogin_Click(object sender, EventArgs e)
{
bool ok = false;
using( SqlConnection connection
= new SqlConnection(AppInitializer.MyNorthwindConnectionSetting.ConnectionString) ) {
connection.Open();
// 其它的数据库操作。
ok = true;
}
if( ok )
Response.Redirect("Default2.aspx");
}
相关推荐
更新发布
功能测试和接口测试的区别
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