• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 18884
  • Last Modified:

The timeout period elapsed prior to obtaining a connection from the pool.

I am getting this error message:

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.


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.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString options, Boolean& isInTransaction) +396
   System.Data.SqlClient.SqlConnection.Open() +384
   cyberdoc.Worker.LoginCommand(Object login, Object password) +96
   cyberdoc.Worker.Login(Object login, Object password, Object& id, Object& user_access, Object& region_id, Object& timeout_min) +26
   cyberdoc.LoginForm.bLogin_Click(Object sender, EventArgs e) +101
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain() +1292

 
My web.config looks like this:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
      <!--StartFragment -->
      <appSettings>
            <add key="ConnectionString" value="Integrated Security=SSPI;Data Source=localhost;Initial Catalog=cyberdoc" />
      </appSettings>
      <system.web>
            <!--  DYNAMIC DEBUG COMPILATION
          Set compilation debug="true" to enable ASPX debugging.  Otherwise, setting this value to
          false will improve runtime performance of this application.
          Set compilation debug="true" to insert debugging symbols (.pdb information)
          into the compiled page. Because this creates a larger file that executes
          more slowly, you should set this value to true only when debugging and to
          false at all other times. For more information, refer to the documentation about
          debugging ASP.NET files.
            -->
            <compilation defaultLanguage="c#" debug="true" />
            <!--  CUSTOM ERROR MESSAGES
          Set customErrors mode="On" or "RemoteOnly" to enable custom error messages, "Off" to disable.
          Add <error> tags for each of the errors you want to handle.

          "On" Always display custom (friendly) messages.
          "Off" Always display detailed ASP.NET error information.
          "RemoteOnly" Display custom (friendly) messages only to users not running
           on the local Web server. This setting is recommended for security purposes, so
           that you do not display application detail information to remote clients.
            -->
            <customErrors mode="RemoteOnly" />
            <!--  AUTHENTICATION
          This section sets the authentication policies of the application. Possible modes are "Windows",
          "Forms", "Passport" and "None"

          "None" No authentication is performed.
          "Windows" IIS performs authentication (Basic, Digest, or Integrated Windows) according to
           its settings for the application. Anonymous access must be disabled in IIS.
          "Forms" You provide a custom form (Web page) for users to enter their credentials, and then
           you authenticate them in your application. A user credential token is stored in a cookie.
          "Passport" Authentication is performed via a centralized authentication service provided
           by Microsoft that offers a single logon and core profile services for member sites.
            -->
            <authentication mode="Forms">
                    <forms timeout="120" />
            </authentication>
            <!--  AUTHORIZATION
          This section sets the authorization policies of the application. You can allow or deny access
          to application resources by user or role. Wildcards: "*" mean everyone, "?" means anonymous
          (unauthenticated) users.
            -->
            <authorization>
                  <allow users="*" /> <!-- Allow all users -->
                  <!--  <allow     users="[comma separated list of users]"
                             roles="[comma separated list of roles]"/>
                  <deny      users="[comma separated list of users]"
                             roles="[comma separated list of roles]"/>
                  -->
            </authorization>
            <!--  APPLICATION-LEVEL TRACE LOGGING
          Application-level tracing enables trace log output for every page within an application.
          Set trace enabled="true" to enable application trace logging.  If pageOutput="true", the
          trace information will be displayed at the bottom of each page.  Otherwise, you can view the
          application trace log by browsing the "trace.axd" page from your web application
          root.
            -->
            <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
            <!--  SESSION STATE SETTINGS
          By default ASP.NET uses cookies to identify which requests belong to a particular session.
          If cookies are not available, a session can be tracked by adding a session identifier to the URL.
          To disable cookies, set sessionState cookieless="true".
            -->
            <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                  cookieless="false" timeout="120" />
            <!--  GLOBALIZATION
          This section sets the globalization settings of the application.
            -->
            <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
      </system.web>
</configuration>
0
SWB-Consulting
Asked:
SWB-Consulting
2 Solutions
 
b1xml2Commented:
Are you closing your connections?
0
 
allanau20Commented:
I think b1xml2 is right, you might have maxed out your connection pool.

There's a way to use performance monitor console to look at your connection pool. In this article:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconConnectionPoolingForSQLServerNETDataProvider.asp

look under the heading: Performance Counters for Connection Pooling

Let me know if you need help setting up performance monitoring.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now