Sintomi
Quando si tenta di connettersi a un database utilizzando l'oggetto SqlConnection in Microsoft ADO.NET 2.0, può essere segnalato un errore di connessione, anche se il server database sia effettivamente disponibile. Questo problema è particolarmente evidente quando le seguenti condizioni sono vere:
-
Il server di database è stato disponibile per almeno un minuto.
-
L'applicazione client ha tentato di connettersi al server di database durante tale periodo.
Causa
Questo problema si verifica a causa di comportamento che si verifica quando non riescono i precedenti tentativi di connessione al server che esegue Microsoft SQL Server. Il pool di connessione SqlClient internamente può limitare il numero di nuovi tentativi di connessione al server. Questo processo deve verificarsi per un breve periodo di tempo. Durante questo periodo, il pool di connessioni report automaticamente sull'ultimo errore invece di effettuare una connessione Cerca nel server. Dopo la scadenza del periodo di tempo, la successiva richiesta di connessione dall'applicazione client raggiunge una vera connessione al server che esegue SQL Server. Nota: In alcuni casi, il periodo di tempo può diventare molto grande. Questo problema dipenderà quanto tempo il server di database è disponibile.
Risoluzione
Per risolvere questo problema, scaricare il file appropriato per il computer:
Per un computer basato su x86
Il seguente file è disponibile per il download da Microsoft Download Center:http://download.microsoft.com/download/2/C/5/2C5BCDC9-3241-443A-9F96-4E0B0EDFA727/NDP20-KB916002-x86.exe
Per un computer basato su x64
Il seguente file è disponibile per il download da Microsoft Download Center:http://download.microsoft.com/download/D/3/9/D39C79DF-4158-45DF-9031-92C52AB0ED19/NDP20-KB916002-x64.exe
Per un computer basati su Itanium
Il seguente file è disponibile per il download da Microsoft Download Center: http://download.microsoft.com/download/0/0/3/00392DD3-5B4F-4D99-94E8-6827B8F8D7EF/NDP20-KB916002-IA64.exe Per ulteriori informazioni su come scaricare i file di supporto Microsoft, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
119591 Come ottenere file di supporto Microsoft dai servizi onlineMicrosoft ha analizzato questo file per individuare eventuali virus. Microsoft ha utilizzato il software antivirus più recente disponibile alla data in cui il file è stato registrato. Il file è archiviato in un server con protezione avanzata che impedisce modifiche non autorizzate al file.
Soluzione alternativa
Per risolvere questo problema, utilizzare i metodi ClearPool o ClearAllPools dell'oggetto SqlConnection per reimpostare il pool di connessioni.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Ulteriori informazioni
Dopo avere applicato questo hotfix, un lieve ritardo può ancora verificarsi prima che l'applicazione client può connettersi al server di database quando il server di database consente di recuperare da un'interruzione. In genere, questo ritardo non dovrebbe durare più di 60 secondi, indipendentemente dal tempo di SQL Server sia stata precedentemente disponibile. Per ulteriori informazioni, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
824684 Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software MicrosoftPer ulteriori informazioni sulla classe SqlConnection , visitare il seguente sito Web Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(VS.80).aspxQuesto hotfix è incluso nel pacchetto di hotfix stesso come l'hotfix nell'articolo della Microsoft Knowledge Base seguente:
912151 FIX: la connessione potrebbe scadere prima di provare a connettersi al server partner di failover quando si tenta di connettersi a un database con mirroring di SQL Server 2005 utilizzando un'applicazione basata su ADO.NET 2.0
912731 FIX: applicazioni ADO.NET an quando utilizza lo spazio dei nomi System.Data.SqlClient, l'applicazione potrebbe verificarsi utilizzo elevato della CPU e potrebbe bloccarsi
912732 FIX: potrebbe verificarsi un errore quando si avvia una nuova transazione in ADO.NET 2.0 su una connessione aperta a un database di SQL Server 2005
913177 FIX: si potrebbe ricevere un messaggio di errore quando un'applicazione ADO.NET connessa utilizza la classe SqlBulkCopy
913764 FIX: messaggio di errore quando si tenta di eseguire una query UNION ALL o di chiamare il metodo DeriveParameters: "Errore irreversibile di connessione interno"
913765 FIX: SqlException un'eccezione può verificarsi quando si chiama uno dei metodi Execute sull'istanza della classe SqlCommand in un'applicazione di ADO.NET 2.0
913766 FIX: DateTime di una colonna che non contiene tutti i dati in modo errato è rappresentato da un campo DateTime. MinValue quando un oggetto DataSet di.NET Framework 2.0 viene deserializzato in un computer client