Pregunta

Estoy trabajando en el proyecto de otra persona que hace un uso intensivo de los TableAdapters. El sitio funciona, pero regularmente agrega una entrada en el registro de eventos:

  

" ExecuteReader requiere una apertura y   Conexión disponible. La conexión es   El estado actual se está conectando. "

Sin embargo, el sitio no lanza una excepción, a menos que haya un alto tráfico (más de 5 solicitudes por segundo), la excepción es la misma, que apunta a esta línea de código:

this.Adapter.Fill(dataTable);
  

Rastreo de pila: en   System.Data.SqlClient.SqlConnection.GetOpenConnection (String   método) en   System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute (String   método, comando SqlCommand)

¿Cómo puedo detener este error? Gracias.

Resulta que solo estaba obteniendo la mitad de la imagen, el error, cuando arrojaría un error es:

  

" Ya hay un DataReader abierto   asociado con este comando que   debe cerrarse primero. "

¿Fue útil?

Solución

Yo diría que probablemente estés usando la misma conexión para múltiples propósitos y uno de ellos se está cerrando con otro hilo.

Recomiendo agregar algún seguimiento para averiguar qué está pasando. Es difícil depurar este tipo de errores, los que solo obtienes cuando estás en producción :(

Otros consejos

Si parece que ha excedido el número permitido de conexiones abiertas a su base de datos. Esto se puede establecer en la cadena de conexión dando valores para los valores de Tamaño mínimo de grupo y Tamaño máximo de grupo. Creo que los valores predeterminados son 0 para el tamaño mínimo de la piscina y 100 para el tamaño máximo de la piscina, pero no estoy seguro.

Intenta cambiarlos y ver si ayuda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top