简体   繁体   中英

How to close all db connection when clicked cancel in c# .net

I'm having timeout expired problem for my system. See error message for more details:

Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 

[InvalidOperationException: Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached.]
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +5079753
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +126
   System.Data.SqlClient.SqlConnection.Open() +125
   SubSonic.SqlDataProvider.CreateConnection(String newConnectionString) +37
   SubSonic.SqlDataProvider.CreateConnection() +25
   SubSonic.AutomaticConnectionScope..ctor(DataProvider provider) +62
   SubSonic.SqlDataProvider.GetReader(QueryCommand qry) +54
   SubSonic.DataService.GetReader(QueryCommand cmd) +25
   SubSonic.StoredProcedure.ExecuteTypedList() +47
   Db.Employee.FindByUsername(String sUsername) in d:\Hudson\jobs\SMART Staff - Dev\workspace\Staff\site\Classes\DataAccess\Employee.cs:426
   CurrentUser.get_SmartID() in d:\Hudson\jobs\SMART Staff - Dev\workspace\Staff\site\Classes\CurrentUser.cs:38
   DbRoleProvider.GetRolesForUser(String usernameIgnored) in d:\Hudson\jobs\SMART Staff - Dev\workspace\Staff\site\Classes\DbRoleProvider.cs:21
   System.Web.Security.RolePrincipal.IsInRole(String role) +182
   System.Web.Configuration.AuthorizationRule.IsTheUserInAnyRole(StringCollection roles, IPrincipal principal) +132
   System.Web.Configuration.AuthorizationRule.IsUserAllowed(IPrincipal user, String verb) +264
   System.Web.Configuration.AuthorizationRuleCollection.IsUserAllowed(IPrincipal user, String verb) +201
   System.Web.Security.UrlAuthorizationModule.OnEnter(Object source, EventArgs eventArgs) +9018637
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

Just wandering does anyone know how to close all db connection that connected when I clicked cancel or refresh the page in c# .net?

You should take care of releasing all the objects before the code ends, and for database connections you should make sure to open them as short as possible, for example you can use the (using) keyword :

using (SqlConnection conn = new SqlConnection(connectionString))
{
  conn.Open();
  ///Use the connection ....
  ///.
  ///.
  ///.
  /// The connection will be closed and disposed automatically before the end of (using) block;
}

Maybe this can help you:

how can i kill all connections of users to my sql server database ?

But not sure, you didn't tell what DBMS you are using.

After opening connection, try to close it like this:

 using (SqlConnection conn = new SqlConnection(connectionString))
    {  
    try          
    {    
    //
    //
    //             
    conn.Close();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    finally
    {
    if (conn != null) conn.Close();
    }
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM