在asp.net mvc 3中关闭应用程序时,在global.asax中调用的正确方法是什么?

时间:2012-08-06 11:21:15

标签: c# asp.net asp.net-mvc-3

global.asax中的事件是:

enter image description here

好的。我想在应用程序停止时关闭与数据库的连接。我使用MSSQL Server 2005。

我想用:

  protected void Application_End( object sender, EventArgs e ) {
     // close database connection
  }

  protected void Application_EndRequest( object sender, EventArgs e ) {
     // close database connection
  }

上述两种方法中哪一项是关闭数据库连接的好选择?

或者最好在global.asax中管理连接?

2 个答案:

答案 0 :(得分:6)

  

最好在global.asax

中管理连接

这是一个糟糕的主意。

连接是昂贵的资源,只能在尽可能短的时间内使用和打开。通常,连接池是用于确保数据库响应的机制。

您应该关闭打开它们的连接,最佳做法是使用using语句确保正确处置:

using(var con = new Connection("my connection string"))
{
}

答案 1 :(得分:3)

IMO也不是一个好选择。

  

或者管理global.asax中的连接是个好主意吗?

没有。连接由Connection Pool

管理