It happens when the open connections reach the maximum limit. it generally happens when you don't close database connections and dispose object
http://blogs.msdn.com/b/spike/archive/2008/08/25/timeout-expired-the-timeout-period-elapsed-prior-to-obtaining-a-connection-from-the-pool.aspx