KORRIGERA: Felmeddelandet "Det går inte att generera SSPI-kontext" visas när du försöker ansluta till en dator med SQL Server 2000 SP3 server

Sammanfattning

När du försöker ansluta till en dator med Microsoft SQL Server 2000 Service Pack 3 (SP3)-server från en klientdator kan misslyckas anslutningen med ett felmeddelande om servernamn inte kan matchas från Internet Protocol (IP)-adress. Problemet uppstår eftersom SQLOLEDB tolkas felaktigt returvärde för funktionen ConnectionGetSvrUser i dbnetlib.

  • En snabbkorrigering löser problemet.

  • Undvik det här problemet genom att manuellt skapa en värdpost för IP-adressen på klientdatorn.

  • Skapa och konfigurera dynamisk IP-adress för serverdatorn och sedan ansluta till servern med hjälp av SQL Query Analyzer eller raduppsättningen Viewer från en klientdator för att återskapa problemet.

Symptom

När du försöker ansluta en klientdator till en serverdator i Microsoft SQL Server 2000 SP3 servernamn inte kan matchas från Internet Protocol (IP)-adress, och anslutningen misslyckas.

När du ansluter till datorn med SQL Server 2000 SP3 server med SQL Query Analyzer, visas följande felmeddelande:

Server: Msg 11004, nivå 16, tillstånd 1
[Microsoft] [Drivrutin för ODBC SQL Server] Det går inte att generera SSPI-kontext

När du använder det SQL Server OLE DB Provider (SQLOLEDB) för att ansluta till en dator med SQL Server 2000-server med hjälp av raduppsättningen Viewer, visas följande felmeddelande:

Källa: "Microsoft OLE DB Provider för SQLServer"

Gränssnitt: IID_IDBInitialize
Resultat: 0x80004005 = E_FAIL

ISQLErrorInfo: [HY000] [0x00002afc]
IErrorInfo: [0x00002afc] "Det går inte att generera SSPI-kontext"

Fil: D:\MDACTools\rowsetviewer\CBase.cpp
Linje: 1067

Orsak

När SQLOLEDB anropar funktionen ConnectionGetSvrUser i dbnetlib bibliotek, felaktigt tolkas som funktionen returnerar ett booleskt värde. Funktionen ConnectionGetSvrUser är utformad för att returnera en void. Vad finns i registret EAX blir därför det returnera värdet.


Funktionen ConnectionGetSvrUser anropas i funktionen GetHostbyaddr internt. I funktionen GetHostbyaddr hämtar värdnamnet som motsvarar en viss IP-adress. Om den funktionen GetHostbyaddr misslyckas Returnerar tecknet noll till EAX-register. Därför returnerar ConnectionGetSvrUser -funktionen värdet Falskt . Detta medför ett inloggningsfel på serverdatorn för SQL Server 2000 SP3.


Lösning

En snabbkorrigering är tillgänglig från Microsoft. Den här snabbkorrigeringen är emellertid avsedd att åtgärda det problem som beskrivs i denna artikel. Använd bara den här snabbkorrigeringen för system med just detta problem.

Om snabbkorrigeringen är tillgänglig för hämtning finns ett avsnitt för "Snabbkorrigeringen är tillgänglig" överst i den här Knowledge Base-artikeln. Om det här avsnittet inte visas, skicka en begäran till Microsofts kundtjänst och Support för att få snabbkorrigeringen.

Obs! Om det uppstår ytterligare problem eller krävs felsökning, kan du behöva skapa en serviceförfrågan. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte uppfyller kraven för den här snabbkorrigeringen. En fullständig lista över telefonnummer för Microsofts kundtjänst och Support eller skapa en serviceförfrågan finns på följande Microsoft-webbplats:

http://support.microsoft.com/contactus/?ws=supportObs! "Snabbkorrigeringen tillgänglig"-formuläret visar de språk som snabbkorrigeringen är tillgänglig. Om ditt språk inte visas beror det på att ingen snabbkorrigering är tillgänglig för språket. Den engelska versionen av den här snabbkorrigeringen har filattribut (eller senare) som visas i följande tabell. Datum och tider för dessa filer anges i UTC-tid (coordinated universal time). När du visar filinformationen konverteras den till lokal tid. Om du vill se skillnaden mellan UTC-tid och lokal tid kan du använda fliken tidszon i verktyget datum och tid på Kontrollpanelen.
Date Time Version Size File name
--------------------------------------------------------------

15-Jun-2004 00:22 2000.85.1045.0 28,672 Dbnmpntw.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msadds.dll
15-Jun-2004 00:21 2.80.1045.0 512,000 Msado15.dll
15-Jun-2004 00:21 2.80.1045.0 163,840 Msadomd.dll
15-Jun-2004 00:21 2.80.1045.0 184,320 Msadox.dll
15-Jun-2004 00:21 2.80.1045.0 53,248 Msadrh15.dll
15-Jun-2004 00:21 2.80.1045.0 225,280 Msdaora.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msdart.dll
15-Jun-2004 00:21 2.575.1045.0 139,264 Msorcl32.dll
15-Jun-2004 00:21 3.525.1045.0 221,184 Odbc32.dll
15-Jun-2004 00:22 2000.85.1045.0 24,576 Odbcbcp.dll
15-Jun-2004 00:21 2.80.1045.0 442,368 Oledb32.dll
15-Jun-2004 00:21 2000.85.1045.0 503,808 Sqloledb.dll
15-Jun-2004 00:21 2000.85.1045.0 401,408 Sqlsrv32.dll
15-Jun-2004 00:08 2000.85.1045.0 208,896 Sqlxmlx.dll


Temporär lösning

Undvik det här problemet genom att manuellt skapa en värdpost på klientdatorn för IP-adressen som du vill ansluta till.

  1. Starta Utforskaren.

  2. Leta upp Hosts-filen och sedan öppna filen i anteckningar.

    Obs! Du kan leta upp filen i %SystemRoot%\System32\Drivers\Etc sökvägen.

  3. Lägg till följande i slutet av filen:
    Slumpmässig IPNamn

    Obs! Slumpmässig IP är en platshållare för den IP-adress som inte används av en annan dator i nätverket. Datornamnet är en platshållare för namnet på den dator som kör på den SQL Server 2000 SP3. Slumpmässig IP IP-adressen och namnet Datornamn måste avgränsas med minst ett blanksteg.

  4. Klicka på SparaArkiv -menyn.

  5. Stäng filen.

Status

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

Mer Information

Åtgärder för att återskapa problemet

Konfigurera dynamisk IP-adress

  1. Logga in som administratör på datorn som kör SQL Server 2000 SP3.

  2. Dubbelklicka på Nätverksanslutningarpå Kontrollpanelen.

  3. Dubbelklicka på den lokala nätverksanslutning som du vill ändra.

  4. Klicka på Egenskaperi dialogrutan Anslutningsstatus för lokala område . Dialogrutan Egenskaper för lokalt nätverk visas.

  5. Klicka på Internet Protocol (TCP/IP)i rutan den här anslutningen använder följande objekt och klicka sedan på Egenskaper. Dialogrutan Egenskaper för Internet Protocol (TCP/IP) visas.

  6. Klicka på Erhåll en IP-adress automatisktoch klicka sedan på OK.

  7. Klicka på Stängi dialogrutan Egenskaper för lokalt nätverk .


  8. Klicka på Stängi dialogrutan Anslutningsstatus för lokala område .

  9. Klicka på Start, Kör, Skriv cmdoch klicka sedan på OK.

  10. Skriv ping Datornamnetvid kommandotolken, och tryck sedan på RETUR.

    Obs! Datornamnet är en platshållare för namnet på datorn som kör SQL Server 2003

    Du får ett felmeddelande som liknar följande:

    Pinga Datornamn [Dynamisk IP] med 32 byte data:

    Svar från Dynamiska IP: byte = 32 tid < 1ms TTL = 128
    Svar från Dynamiska IP: byte = 32 tid < 1ms TTL = 128
    Svar från Dynamiska IP: byte = 32 tid < 1ms TTL = 128

    Ping-statistik för Dynamisk IP:
    Paket: Skickade = 4, mottagna = 4, förlorade = 0 (0% förlust),
    Ungefärlig tid i millisekunder:
    Minsta = 0ms, högsta = 0ms, genomsnitt = 0ms
    Obs! Dynamisk IP är en platshållare för dynamisk IP på datorn Datornamn .

  11. Avsluta Kommandotolken genom att skriva exitoch tryck sedan på RETUR.

  12. Upprepa steg c-e. Klicka på Använd följande IP-adress.

  13. Ange Dynamisk IP- adress i rutan IP-adress .

    Obs! Dynamisk IP är en platshållare för dynamisk IP på datorn Datornamn .

  14. Skriv i rutan nätmask nätmasken för nätverket.

  15. Skriv IP-adressen för datorn eller enheten i rutan standard-gateway i nätverket som ansluter nätverket till ett annat nätverk eller till Internet.

  16. Skriv IP-adressen för den dator som löser värdnamn till IP-adresser i rutan önskad DNS-server .

  17. I rutan Alternativ DNS-server skriver du IP-adressen för DNS-dator som du vill använda om standardservern för DNS (Domain Name System) inte är tillgänglig.

  18. Klicka på Avancerat. Avancerade inställningar för TCP/IP visas.

  19. Klicka på Lägg tillunder IP-adresser. Dialogrutan TCP/IP-adress visas.

  20. Skriv Slumpmässig IP- adress i rutan IP-adress .

    Obs! Slumpmässig IP är en platshållare för den IP-adress som inte används av en annan dator i nätverket.

  21. I rutan nätmask anger nätmasken för nätverket.

  22. I Avancerade TCP/IP-inställningarklickar du på OK.

  23. Klicka på OKi Egenskaper för Internet Protocol (TCP/IP) . Klicka på Stängi dialogrutan Egenskaper för lokalt nätverk . Klicka på Stängi dialogrutan Anslutningsstatus för lokala område .

Ansluta till datorn med SQL Server 2000 SP3 server från en klientdator via SQL Query Analyzer

  1. Starta SQL Query Analyzer. Anslut till SQL Server -dialogrutan visas.

  2. Skriv i rutan SQL ServerSlumpmässigt IP.

    Obs! Slumpmässig IP är en platshållare för den IP-adress som inte används av en annan dator i nätverket.

  3. Klicka på Windows-autentiseringunder Anslut med.

  4. Klicka på OK. Du märker det felmeddelande som nämns i avsnittet "Symptom".

Ansluta till datorn med SQL Server 2000 SP3 server från en klientdator via raduppsättningen Viewer

  1. Starta Loggboken raduppsättningen. Microsoft OLE DB RowsetViewer visas.

  2. Klicka på Fullständig AnslutArkiv -menyn. Dialogrutan Fullständig ansluta - nr beskrivning tillgänglig visas.

  3. Klicka på listan ProviderSQLOLEDB under anslutningen.

  4. Skriv i rutan datakällaSlumpmässigt IP under källa.

    Obs! Slumpmässig IP är en platshållare för den IP-adress som inte används av en annan dator i nätverket.

  5. Klicka på DBPROMPT_NOPROMPT i listan fråga under inloggningen.

  6. Klicka på Avanceratpå fliken Egenskaper . Dialogrutan IDBProperties::SetProperties visas.

  7. Markera DBPROP_AUTH_INTEGRATED och klicka sedan på OK.

  8. Klicka på OKi dialogrutan Fullständig ansluta - nr beskrivning tillgänglig . Du märker det felmeddelande som nämns i avsnittet "Symptom".

Obs! Klientdatorn och SQL Server 2000 SP3 server-datorn måste finnas i samma domän. När du försöker ansluta till datorn med SQL Server 2000 SP3 server med Slumpmässig IP från samma dator som ansluter den till datorn med SQL Server 2000 SP3 server utan fel.

Referenser

Mer information finns på följande Microsoft Developer Network (MSDN)-webbplatser:

ConnectionGetSvrUser
http://msdn2.microsoft.com/en-us/library/Aa470056.aspx

OLE DB testverktyg översikt
http://msdn2.microsoft.com/en-us/library/ms721219.aspxFör ytterligare information klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

323444 hur du ändrar IP-adress för ett nätverkskort i Windows Server 2003

För ytterligare 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-programuppdateringar

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!

×