如何在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");
}

sales@spasvo.com