Delen via


SQL Server-clients kunnen protocollen wijzigen wanneer de clientcomputers verbinding proberen te maken met een exemplaar van SQL Server

In dit artikel worden SQL Server-clients geïntroduceerd die protocollen kunnen wijzigen wanneer de clientcomputers verbinding proberen te maken met een exemplaar van SQL Server.

Oorspronkelijke productversie: SQL Server
Oorspronkelijk KB-nummer: 328383

Samenvatting

Clientcomputers met MDAC-versie 2.6 (Microsoft Data Access Components) of hoger kunnen meerdere protocollen of IPC-mechanismen (Interprocess Communication) proberen om verbindingen met SQL Server tot stand te brengen.

Meer informatie

Er is een verbetering aangebracht in de netwerkbibliotheek aan de clientzijde, Dbnetlib.dll voor MDAC versie 2.6 en hoger. Met MDAC versie 2.6 en hoger, als er meerdere protocollen beschikbaar zijn en een verbindingspoging met het eerste protocol mislukt, probeert de clienttoepassing onmiddellijk een van de andere protocollen te gebruiken.

Clients hebben standaard TCP en Named Pipes als beschikbare protocollen. U kunt de volgorde van het protocol bewerken met behulp van het hulpprogramma SQL Server Client. De clienttoepassing gebruikt de protocollen in de volgorde die is opgegeven op de clientcomputer. De protocolvolgorde wordt opgeslagen op de volgende registersleutellocatie onder de waarde ProtocolOrder:

HKLM\Software\Microsoft\MSSQLServer\Client\SuperSocketNetLib

Als u SQL Server 2005 gebruikt, wordt de protocolvolgorde opgeslagen in de registervermelding ProtocolOrder onder de volgende registersubsleutel:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI<version>

Als een clientcomputer bijvoorbeeld zowel TCP als Named Pipes beschikbaar heeft, en de volgorde is:

  • TCP
  • Named Pipes

Wanneer de clientcomputer probeert een TCP-verbinding te maken met de server en de verbindingspoging een niet-nul retourcode retourneert, probeert de client transparant een verbinding met behulp van het volgende protocol in de lijst, dat Named Pipes is. In dit scenario kan de client geen TCP-verbinding maken; De client maakt echter een Named Pipes-verbinding.

Notitie

De client ontvangt geen fout die aangeeft dat het eerste protocol is mislukt.

Als de clienttoepassing gebruikmaakt van het tweede protocol en er ook een fout wordt geretourneerd, wordt er een fout geretourneerd naar de client.

Als u een alias maakt met behulp van een van de volgende methoden, gebruikt de clienttoepassing de aliasgegevens om een verbinding met de server tot stand te brengen en worden geen aanvullende protocollen gebruikt.

  • Met behulp van het hulpprogramma SQL Server Client Network
  • Met BEHULP van SQL Server Configuration Manager
  • Wanneer u een ODBC-gegevensbronnaam (DSN) maakt

Als u het protocol wilt beheren dat door een clienttoepassing wordt gebruikt voor elke verbindingspoging en de client niet meerdere protocollen mag proberen, kunt u een van de volgende handelingen uitvoeren:

  • Gebruik het hulpprogramma SQL Client Network of SQL Server Configuration Manager om een alias te maken door het gewenste protocol op te geven.

  • Geef het protocol op in uw verbindingsreeks. Bijvoorbeeld:

    DSN=DSNName;SERVER=servername;DATABASE=YourDataBaseName;Network=DBMSSOCN;Address=IP_Address,1433;UID=YourUID;PWD=YourPassword;
    

    In dit voorbeeld geeft u het netwerkprotocol op als DBMSSOCN, wat betekent dat u het TCP/IP-protocol wilt gebruiken. Als u het protocol in uw verbindingsreeks opgeeft, gebruikt Dbnetlib alleen het opgegeven protocol en probeert het geen ander protocol. Als u alleen benoemde pijpprotocol wilt inschakelen, gebruikt u een verbindingsreeks vergelijkbaar met deze:

    DSN=DSNName;SERVER=servername;DATABASE=YourDataBaseName;Network=DBNMPNTW;Address=\\.\pipe\sql\query;UID=YourUID;PWD=YourPassword;
    
  • Gebruik het hulpprogramma Client Network om andere protocollen te verwijderen.

REFERENTIES

Solving Connectivity errors to SQL Server (Verbindingsproblemen met SQL Server oplossen)