KORRIGERA: Ett anslutningsfel kan rapporteras även om databasservern är faktiskt tillgänglig när du försöker ansluta till en databas med hjälp av SqlConnection-objektet i ADO.NET 2.0

Symptom

När du försöker ansluta till en databas med hjälp av SqlConnection -objektet i Microsoft ADO.NET 2.0 rapporteras ett anslutningsfel trots att databasservern är tillgängligt. Problemet märks mest när följande villkor är uppfyllda:

  • Databasservern har varit tillgänglig under minst en minut.

  • Klientprogrammet har försökt ansluta till databasservern under den tiden.

Orsak

Det här problemet beror på vad som händer när tidigare anslutningsförsök till servern som kör Microsoft SQL Server misslyckas. Anslutningspool SqlClient kan internt begränsar antalet nya anslutningsförsök till servern. Denna process är avsedd för en kort stund. Under denna tid rapporterar anslutningspoolen automatiskt det senaste felet som inträffade i stället för att en anslutning försöker till servern. Efter tidsperioden har löpt ut, uppnår nästa begäran från klientprogrammet en true anslutning till servern som kör SQL Server. Obs! Hur lång tid kan ibland växa mycket stor. Det här problemet beror på hur länge databasservern är inte tillgänglig.

Lösning

Lös problemet genom att hämta filen för din dator:

För en dator med x86

Följande fil kan hämtas från Microsoft Download Center:http://download.microsoft.com/Download/2/C/5/2C5BCDC9-3241-443A-9F96-4E0B0EDFA727/NDP20-KB916002-X86.exe

För en dator med x64

Följande fil kan hämtas från Microsoft Download Center:http://download.microsoft.com/Download/D/3/9/D39C79DF-4158-45DF-9031-92C52AB0ED19/NDP20-KB916002-X64.exe

För en Itanium-baserad dator

Följande fil kan hämtas från Microsoft Download Center: http://download.microsoft.com/download/0/0/3/00392DD3-5B4F-4D99-94E8-6827B8F8D7EF/NDP20-KB916002-IA64.exe För mer information om hur du hämtar supportfiler från Microsoft klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

119591 hämta Microsoft-supportfiler från onlinetjänsterMicrosoft har genomsökt denna fil efter virus. Microsoft använde det mest aktuella antivirusprogram som var tillgängligt när filen lades upp. Filen är sparad på servrar med utökad säkerhet som hjälper till att förhindra otillåtna ändringar av den.

Lösning

Undvik problemet genom att använda metoderna ClearPool eller ClearAllPools för SqlConnection -objektet för att återställa anslutningspoolen.

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet ”gäller”.

Mer information

När du har installerat den här snabbkorrigeringen kan fortfarande en liten fördröjning uppstå innan klientprogrammet kan ansluta till databasservern databasservern återfår från ett strömavbrott. Vanligtvis pågå den här fördröjningen inte mer än 60 sekunder, oavsett hur länge SQL Server har tidigare varit tillgänglig. Mer information klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

824684 beskrivning av standardterminologin som används för att beskriva Microsoft-programuppdateringarMer information om klassen SqlConnection finns på följande Microsoft Developer Network (MSDN)-webbplats:

http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(VS.80).aspxDen här snabbkorrigeringen ingår i samma snabbkorrigeringspaket som snabbkorrigeringen i följande artikel i Microsoft Knowledge Base:

912151 KORRIGERA: anslutningen får timeout innan första försöket att ansluta till servern för failover-partner när du försöker ansluta till en speglad databas i SQL Server 2005 med hjälp av ADO.NET 2.0-program

912731 KORRIGERA: när en ADO.NET-anslutna program använder System.Data.SqlClient namespace, programmet uppstår hög CPU-användning och slutar svara

912732 KORRIGERA: ett fel som kan uppstå när du startar en ny transaktion i ADO.NET 2.0 på en anslutning som är öppen till en SQL Server 2005-databas

913177 KORRIGERA: du får ett felmeddelande när ett ADO.NET-anslutna program använder klassen SqlBulkCopy

913764 KORRIGERA: felmeddelande när du försöker köra en UNION ALL fråga eller anropa metoden DeriveParameters: ”allvarligt internt anslutningsfel”

913765 KORRIGERA: ett SqlException-undantag kan inträffa om du anropar en av Execute-metoderna i en instans av klassen SqlCommand i ett ADO.NET 2.0-program

913766 KORRIGERA: en DateTime-kolumn som inte innehåller några data är felaktigt representeras av ett DateTime.MinValue fält när ett.NET Framework 2.0 DataSet-objekt deserialisera på en klientdator

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

×