Flo Flo - 1 month ago 19
ASP.NET (C#) Question

Execution Timeout via ASP.NET codebehind that does not occur in SQL Server Management Studio

When running my query directly in SQL Server Management Studio, it works fine and takes about 4 seconds.

When I run it within my ASP.NET app I get:


Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.


Even when I make sure I've added a timeout to the connectionstring, see my code:

web.config
:

<connectionStrings>
<add name="conn1"
connectionString="data source=(local)\sqlexpress;Initial Catalog=mydb;User Id=myuser;Password=mypwd;"
providerName="System.Data.SqlClient" />
</connectionStrings>


Code behind:

Public Shared Function GetConnection() As SqlConnection
Dim MyConnection As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("conn1").ToString)
Return MyConnection
End Function


Dim myConnection As SqlConnection = GetConnection()
myConnection.ConnectionString = ConfigurationManager.ConnectionStrings("conn1").ToString + "Connection Timeout=900" 'timeout in seconds


Why does this behavior differ?

Win Win
Answer

You want CommandTimeout instead of ConnectionTimeout.

Using connection As New SqlConnection(connectionString)
    connection.Open()
    Dim command As New SqlCommand(queryString, connection)
    command.CommandTimeout = 900
    ...
End Using