Application hanging when testing SQL connection

MattNorman

Active member
Joined
May 22, 2021
Messages
35
Programming Experience
1-3
I have implemented some checks to a settings form in my app to validate some of the data and test DNS resolution and SQL connections.

For some reason, if I purposely enter an incorrect username and password for the SQL database, my test function hangs without catching any exceptions. The app eventually crashes with a 'Managed Debugging Assistant 'ContextSwitchDeadlock' error.

Here is the code for the SQL connection test:

C#:
public static bool TestDatabaseConnection(string Server, string Username, string Password)
        {
            SqlConnectionStringBuilder testbuilder = new SqlConnectionStringBuilder();
            testbuilder["Server"] = Server;
            testbuilder["User"] = Username;
            testbuilder["Password"] = Password;

            using (SqlConnection connection = new SqlConnection(testbuilder.ConnectionString))
            {
                try
                {
                    connection.Open();
                    return true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    return false;
                }
            }
        }

Can anyone think of a reason this might be failing? There must be a way of being able to test the SQL connection with invalid credentials and have it return an exception on failure.
 
Solution
I have implemented some checks to a settings form in my app to validate some of the data and test DNS resolution and SQL connections.

For some reason, if I purposely enter an incorrect username and password for the SQL database, my test function hangs without catching any exceptions. The app eventually crashes with a 'Managed Debugging Assistant 'ContextSwitchDeadlock' error.

Here is the code for the SQL connection test:

C#:
public static bool TestDatabaseConnection(string Server, string Username, string Password)
        {
            SqlConnectionStringBuilder testbuilder = new SqlConnectionStringBuilder();
            testbuilder["Server"] = Server;
            testbuilder["User"] = Username;
            testbuilder["Password"]...

Skydiver

Staff member
Joined
Apr 6, 2019
Messages
4,027
Location
Chesapeake, VA
Programming Experience
10+
Is this a matter of invalid username/password, or invalid server name? From my experience, the long logon happens in the case of a bad server name. If the client can talk to the server, the invalid password error comes back quickly from my experience.
 

MattNorman

Active member
Joined
May 22, 2021
Messages
35
Programming Experience
1-3
I have implemented some checks to a settings form in my app to validate some of the data and test DNS resolution and SQL connections.

For some reason, if I purposely enter an incorrect username and password for the SQL database, my test function hangs without catching any exceptions. The app eventually crashes with a 'Managed Debugging Assistant 'ContextSwitchDeadlock' error.

Here is the code for the SQL connection test:

C#:
public static bool TestDatabaseConnection(string Server, string Username, string Password)
        {
            SqlConnectionStringBuilder testbuilder = new SqlConnectionStringBuilder();
            testbuilder["Server"] = Server;
            testbuilder["User"] = Username;
            testbuilder["Password"] = Password;

            using (SqlConnection connection = new SqlConnection(testbuilder.ConnectionString))
            {
                try
                {
                    connection.Open();
                    return true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    return false;
                }
            }
        }

Can anyone think of a reason this might be failing? There must be a way of being able to test the SQL connection with invalid credentials and have it return an exception on failure.
It actually turned out to be a silly mistake on my part.

I had a custom message box being displayed in dialog mode and the issue was with that form being shown rather than the database test.

Thanks for the reply
 
Solution
Top Bottom