REVISIÓN: Un error de conexión puede informar a pesar de que el servidor de base de datos es realmente disponible cuando intenta conectarse a una base de datos mediante el objeto SqlConnection en ADO.NET 2.0


Síntomas


Cuando intenta conectarse a una base de datos mediante el objeto SqlConnection en Microsoft ADO.NET 2.0, se puede informar una falla de conexión aunque el servidor de base de datos está realmente disponible. Este problema es más apreciable cuando se cumplen las condiciones siguientes:
  • El servidor de base de datos ha sido deshabilitado para al menos un minuto.
  • La aplicación cliente ha intentado conectarse al servidor de base de datos durante ese tiempo.

Causa


Este problema se produce debido a lo que sucede cuando fallan los intentos de conexión anterior en el servidor que está ejecutando Microsoft SQL Server. La agrupación de conexiones de SqlClient internamente puede limitar al número de nuevos intentos de conexión al servidor. Este proceso está pensado para producir durante un rato. Durante este tiempo, la agrupación de conexiones notifica automáticamente el último error producido en lugar de realizar una conexión de intentar en el servidor. Una vez transcurrido el período de tiempo, la siguiente solicitud de conexión desde la aplicación cliente logra una verdadera conexión con el servidor que está ejecutando SQL Server. Nota: A veces, el período de tiempo puede crecer considerablemente. Este problema dependerá de cuánto tiempo está disponible el servidor de base de datos.

Resolución


Para resolver este problema, descargue el archivo adecuado para su equipo:

Para un equipo basado en x86

El archivo siguiente está disponible para su descarga desde Microsoft Download Center:http://download.Microsoft.com/download/2/C/5/2C5BCDC9-3241-443A-9F96-4E0B0EDFA727/NDP20-KB916002-x86.exe

Para un equipo basado en x64

El archivo siguiente está disponible para su descarga desde Microsoft Download Center:http://download.Microsoft.com/download/D/3/9/D39C79DF-4158-45DF-9031-92C52AB0ED19/NDP20-KB916002-X64.exe

Para un equipo basado en Itanium

El archivo siguiente está disponible para su descarga desde Microsoft Download Center: http://download.Microsoft.com/download/0/0/3/00392DD3-5B4F-4D99-94E8-6827B8F8D7EF/NDP20-KB916002-IA64.exe Para obtener más información acerca de cómo descargar archivos de soporte técnico de Microsoft, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
119591 Cómo obtener archivos de soporte técnico de Microsoft desde los servicios en línea
Microsoft analizó este archivo en busca de virus. Microsoft ha utilizado el software de detección de virus más reciente que estaba disponible en la fecha en que se publicó el archivo. El archivo se almacena en servidores seguros que ayudan a evitar cambios no autorizados en el archivo.

Solución alternativa


Para evitar este problema, utilice los métodos ClearPool o ClearAllPools del objeto SqlConnection para restablecer la agrupación de conexiones.

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".

Más información


Después de aplicar este hotfix, todavía puede producirse un pequeño retraso antes de que la aplicación cliente puede conectarse correctamente al servidor de base de datos cuando el servidor de base de datos se recupere de una interrupción. Normalmente, este retraso no debe durar más de 60 segundos, independientemente de cuánto tiempo el SQL Server ha sido previamente disponible. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft
Para obtener más información acerca de la clase SqlConnection , visite el siguiente sitio Web de Microsoft Developer Network (MSDN):Esta revisión se incluye en el mismo paquete de revisión de la revisión en el siguiente artículo de Microsoft Knowledge Base:
CORREGIR 912151 : la conexión puede agotar el tiempo antes del primer intento para conectar con el servidor asociado de conmutación por error cuando intenta conectarse a una base de datos reflejada de SQL Server 2005 mediante una aplicación basada en ADO.NET 2.0
CORREGIR 912731 : conectado cuando ADO.NET una aplicación utiliza el espacio de nombres System.Data.SqlClient, la aplicación puede experimentar el uso elevado de CPU y puede dejar de responder
CORREGIR 912732 : puede producirse un error cuando se inicia una nueva transacción en ADO.NET 2.0 en una conexión abierta a una base de datos de SQL Server 2005
CORREGIR 913177 : puede recibir un mensaje de error cuando una aplicación conectada con ADO.NET utiliza la clase SqlBulkCopy
CORREGIR 913764 : mensaje de Error cuando intenta ejecutar una consulta UNION ALL o llamar el método DeriveParameters: "error grave de conexión interna"
CORREGIR 913765 : excepción SqlException An puede producirse cuando se llama a uno de los métodos Execute en la instancia de la clase SqlCommand en una aplicación de ADO.NET 2.0
CORREGIR 913766 : columna A DateTime que no contenga ningún dato está representada incorrectamente por un campo DateTime.MinValue cuando se deserializa un objeto de conjunto de datos de.NET Framework 2.0 en un equipo cliente