Amigos,
Durante estos días me tope con el siguiente error: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

Este error me dio usando las siguientes aplicaciones: VS 2005, ASP.NET, SQL-Server. Lo que sucede aca como fue en mi caso es que la consulta en la base de datos tomaba varios segundos y la conexión no esperaba lo suficiente, por lo tanto hay que hacer que la conexión espere a que la consulta termine de procesarse.
Bueno hay tres soluciones para este problema, traten de hacerlo en el correlativo que se los expongo ya que la primera puede solucionar de una vez.
1. En el código de su conexión hay que agregarle a su SqlCommand el siguiente comando: SqlCommand.CommandTimeout = 0;
Este simple código debe de corregir el 90% de este tipo de problemas, ya que aca se le esta indicando a la conexión que no hay tiempo limite de espera a que la consulta se resuelva.
Pero si no lo resuelve todavía tengo un par de cartas bajo la manga.
2. En su conexión del Web.config traten de agregar lo siguiente: Connect Timeout=200;
"server=LocalHost;uid=sa;pwd=;database=DataBaseName;Connect Timeout=200; pooling='true'; Max Pool Size=200"
Aca estamos hacienda lo mismo que en la primera opción pero lo hacemos directo en el ConnectionString.
3. Si después de las primeras dos aun no se ha solucionado su problema con esto debería de quedar listo.
En su web.config bajo system.web ingresen lo siguiente:
<system.web>
<customErrors mode="Off"/>
<httpRuntime appRequestQueueLimit="100" executionTimeout="60000" />
</system.web>
Espero que les haya ayudado y como lo hizo conmigo.
Un saludo,
Luis Antonio Alfaro