REVISIÓN: Anulación de subproceso durante SqlCommand.ExecuteReader daña el grupo de SqlConnection

Seleccione idioma Seleccione idioma
Id. de artículo: 319345 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

Síntomas

Si se cumplen las siguientes condiciones:
  • Se anula una consulta de larga ejecución que utiliza el método SqlClient.SqlCommand.ExecuteReader en una aplicación multiproceso. NET.
  • Subprocesos después utilizan la misma cadena de conexión para intentar leer los datos mediante SqlClient.SqlCommand.ExecuteReader .
recibirá el siguiente mensaje de error:
System.InvalidOperationException: Ya hay un DataReader abierto asociado con esta conexión que debe cerrarlo primero.
Es posible que la pila de llamadas aparezca de la siguiente manera:
at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean executing)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
   at System.Data.SqlClient.SqlCommand.ExecuteReader()
					

Causa

Cuando se anula el subproceso que interactúa con el objeto DataReader , la conexión no puede limpiarse correctamente porque no se llama el método SqlClient.SqlConnection.Close que contiene el código de limpieza. Esto deja la conexión en un estado indeterminado y finalmente la agrupación de conexiones a entrar en un estado no utilizable.

Solución

Para resolver este problema, consiga la última versión del Service Pack para Microsoft .NET Framework. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
318836Cómo obtener el Service Pack más reciente de .NET Framework
La versión en inglés de esta revisión debe tener los atributos de archivo siguientes o posteriores:
   Date            Version                                 Size              File name     
   --------------------------------------------------------------------
   05-Mar-2002     1.0.3705.211    1,175,552 bytes   System.data.dll
   29-Jan-2002                                  1,831,936 bytes   NDP10U318609.msp
				

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:" de este artículo. Este problema se corrigió primero en el Service Pack 2 de Microsoft .NET Framework.

Propiedades

Id. de artículo: 319345 - Última revisión: miércoles, 05 de febrero de 2014 - Versión: 5.1
La información de este artículo se refiere a:
  • Microsoft ADO.NET 1.0
Palabras clave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbfix kbnetframe100presp2fix kbnetframe100sp2fix KB319345 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 319345

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com