I have a website using Microsoft SQL 2008 server over local network. Sometimes, SQL server machine is rebooted, and so the website fails to connect to the database. If the machine is up and running, it will respond fast. If it's down, there is no need to wait for 15 seconds. 3 seconds are ok.
I want to display apologizes on the website when the database is not reachable, and want to do it fast. But setting Connection Timeout=3
in connection string seems having no effect. The page spends 22 seconds to wait before throwing SqlException
on SqlConnection.Open();
.
What's wrong with it? May it be a hidden configuration which overrides the timeout?
Currently, my connection string is
Data Source=...;
Initial Catalog=...;
Integrated Security=True;
Connection Timeout=3
If I set it to ...;ConnectionTimeout=3
(without space),
System.ArgumentException: Keyword not supported: 'connectiontimeout'.
is thrown (strange, MSDN documentation indicates that we can use both strings).
SqlConnection.ConnectionTimeout
gives '3', as expected. So the connection string seems to be correct. – InvoluteSqlConnection.ClearAllPools()
. The result is the same. – InvoluteSqlConnection.Open
asynchronously, and setEndInvoke
it after setting timeout withWaitOne
. Can you please promote your last comment to an answer so I would accept it? – Involute