Symptom
När du försöker ansluta till en databas med hjälp av SqlConnection-objektet i Microsoft ADO.NET 2.0 kan ett anslutningsfel rapporteras trots att databasservern faktiskt är tillgänglig. Det här problemet är mest märkbart när följande villkor är uppfyllda:
- Databasservern har varit otillgänglig i minst en minut.
- Klientprogrammet försökte ansluta till databasservern under den tiden.
Orsak
Det här problemet uppstår på grund av beteende som uppstår när tidigare anslutningsförsök till servern som kör Microsoft SQL Server misslyckas. SqlClient-anslutningspoolen kan internt begränsa antalet nya anslutningsförsök till servern. Den här processen är avsedd att pågå under en kort tid. Under den här tiden rapporterar anslutningspoolen automatiskt det senaste felet i stället för att göra ett anslutningsförsök till servern. När tidsperioden har gått ut uppnår nästa anslutningsbegäran från klientprogrammet en sann anslutning till servern som kör SQL Server.
Obs! Ibland kan tidsperioden bli mycket stor. Problemet beror på hur länge databasservern inte är tillgänglig.
Lösning
Lös problemet genom att ladda ned lämplig fil för din dator:
För en x86-baserad dator
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 x64-baserad dator
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 Om du vill veta mer om hur du hämtar Microsoft-supportfiler klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
119591 Så här hämtar du Microsoft-supportfiler från onlinetjänster
Microsoft har sökt igenom filen efter virus. Microsoft använde den senaste programvaran för virusdetektering som var tillgänglig det datum då filen publicerades. Filen lagras på säkerhetsförbättrade servrar som hjälper till att förhindra obehöriga ändringar i filen.
Lösning
Du kan komma runt det här 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 de Microsoft-produkter som anges i avsnittet "Gäller".
Mer information
När du har installerat den här snabbkorrigeringen kan det fortfarande ta en liten fördröjning innan klientprogrammet kan ansluta till databasservern när databasservern återställs efter ett avbrott. Vanligtvis bör den här fördröjningen inte vara mer än 60 sekunder, oavsett hur länge SQL Server tidigare inte har varit tillgänglig.
Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:
824684 Beskrivning av standardterminologin som används för att beskriva Microsofts programuppdateringar
Mer information om klassen SqlConnection finns på följande MSDN-webbplats (Microsoft Developer Network):
http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(VS.80).aspx Den här snabbkorrigeringen ingår i samma snabbkorrigeringspaket som snabbkorrigeringen i följande Microsoft Knowledge Base-artikel:
912151 ÅTGÄRD: Anslutningen kan nå en tidsgräns innan det första försöket att ansluta till redundanspartnerservern när du försöker ansluta till en SQL Server 2005-speglad databas med hjälp av ett ADO.NET 2.0-baserat program
912731 ÅTGÄRD: När en ADO. NET-anslutna program använder System.Data.SqlClient namnområdet kan programmet ha hög CPU-användning och kan sluta svara
912732 ÅTGÄRD: Ett fel kan uppstå när du startar en ny transaktion i ADO.NET 2.0 på en anslutning som är öppen för en SQL Server 2005-databas
913177 ÅTGÄRD: Du kan få ett felmeddelande när en ADO. NET-anslutna program använder klassen SqlBulkCopy
913764 ÅTGÄRD: Felmeddelande när du försöker köra en UNION ALL-fråga eller anropa metoden DeriveParameters: "Intern anslutning allvarligt fel"
913765 ÅTGÄRD: Ett SqlException-undantag kan inträffa när du anropar någon av körningsmetoderna på instansen av klassen SqlCommand i ett ADO.NET 2.0-program
913766 KORRIGERING: En DateTime-kolumn som inte innehåller några data representeras felaktigt av ett DateTime.MinValue fält när ett .NET Framework 2.0 DataSet objekt deserialiseras på en klientdator