System.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.

Lavorando con applicazioni che necessitano di effettuare diverse chiamate al DB, può accadere di incappare nella più classica System.InvalidOperationException. Ovvero.. TimeOutExpired.
Prima di partire a cercare materiale su internet andate direttamente al blog di Angel Saenz-Badillos.
Ha realizzato un'ottima FAQ proprio su questo argomento.

Il link è questo

ps = anche se pensate di essere dei code killers ne consiglio la lettura perchè ci sono molte cose da imparare.. specialmente sullo stato delle connessioni..