Connection Timeout Expired When there are many requests simultaneously

0

I have a .Net Application(REST API) which accesses SQL Server Database. Sometimes When there are many API requests at the same time, I get Connection Timeout exception due to which all the request fails. This is not always the case and happens only when there are many requests hitting the server at the same time.

Exception Details:

System.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement. This could be because the pre-login handshake failed or the server was unable to respond back in time. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=4; handshake=14992; ---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out.

Any help here will be highly appreciated.

asp.net
.net
sql-server
asp.net-mvc
asp.net-apicontroller
asked on Stack Overflow Jan 31, 2019 by Sam • edited Jan 31, 2019 by Tasos K.

1 Answer

0

From this (upvoted) comment

in this case may be few reasons:
1. You are using SQL Server Express
2. Dead lock between your queries
3. Queries executed more then standard timeout- 30 sec

You should first exclude N1, as the server Edition has nothing to do with connection timeout that is imposted by client

Then exclude N2 as the deadlocks are resolved automatically by server deadlock monitor that controls for deadlocks every 5 seconds or even less when the deadlocks are frequent.

Than exclude N3 as connection timeout has nothing to do with execution timeout. And your timeout is CONNECTION timeout.

You should increase connection timeout on your client or troubleshoot your server, what happens there that your server becomes unresponsive.

answered on Stack Overflow Jan 31, 2019 by sepupic • edited Feb 1, 2019 by marc_s

User contributions licensed under CC BY-SA 3.0