Gebruikers kunnen mogelijk geen verbinding maken met SQL Server via TCP/IP-protocol
Dit artikel helpt u bij het oplossen van het probleem waarbij u geen verbinding kunt maken met SQL Server met behulp van TCP/IP-protocol.
Oorspronkelijke productversie: SQL Server
Oorspronkelijk KB-nummer: 2018930
Symptomen
Wanneer u Microsoft SQL Server gebruikt, ziet u mogelijk een of meer van de volgende symptomen:
Alleen de gebruikers met de machtiging CONTROL SERVER (bijvoorbeeld leden van vaste serverrol syadmin) kunnen verbinding maken via TCP/IP. Gebruikers die niet over deze machtiging beschikken, kunnen geen verbinding maken via tcp/IP-protocol via Windows- of SQL Server-verificatie.
Notitie
U ziet dat de verhoogde gebruikersverbindingen alleen worden weergegeven in sys.dm_exec_sessions (Transact-SQL) Dynamic Management View (DMV), maar niet in de weergave sys.dm_exec_connections (Transact-SQL).
Zowel lokale als externe verbindingen met het Named Pipes-protocol en lokale verbindingen met behulp van het protocol voor gedeeld geheugen blijven prima werken.
Daarnaast worden de volgende berichten vastgelegd in het SQL Server Errorlog-bestand:
Bij het opstarten van SQL Server:
Fout: 26023, Ernst: 16, Status: 1.
De TCP-provider van de server kan niet luisteren op ['any'ipv6<> 1963]. Tcp-poort is al in gebruik.
Fout: 9692, Ernst: 16, Status: 1.
Het Service Broker-protocoltransport kan niet luisteren op poort 1963 omdat het door een ander proces wordt gebruikt.Voor mislukte aanmeldingen:
SQL Server 2008 en nieuwere versies:
Fout: 18456, Ernst: 14, Status: 11.
Aanmelden is mislukt voor gebruiker 'MyDomain\TestAcc'. Reden: Validatie van servertoegang op basis van tokens is mislukt met een infrastructuurfout. Controleer op eerdere fouten.
Oorzaak
De fout treedt op wanneer u een TCP-eindpunt voor Service Broker configureert met dezelfde poort die het SQL Server-exemplaar is geconfigureerd voor gebruik. U kunt de lijst met eindpunten verkrijgen door de volgende query uit te voeren:
SELECT * FROM sys.tcp_endpoints
Notitie
Zoals uitgelegd in het onderwerp Books Online over sys.tcp_endpoints (Transact-SQL), bevat deze weergave geen informatie over de poorten en protocollen die momenteel zijn geconfigureerd voor het gebruik van het SQL Server-exemplaar. Zie SQL Server Configuration Manager voor meer informatie.
Oplossing
Methode 1: Zet het eindpunt neer dat het probleem veroorzaakt met behulp van de opdracht DROP ENDPOINT (Transact-SQL).
Als u bijvoorbeeld een eindpunt met de naam wilt
TestEP
verwijderen, kunt u de volgende opdracht gebruiken:DROP ENDPOINT TestEP
Methode 2: Wijzig het eindpunt om een andere poort te gebruiken met behulp van de opdracht ALTER ENDPOINT (Transact-SQL).
Als u bijvoorbeeld een eindpunt met de naam
TestEP
wilt wijzigen om een andere poort te gebruiken, kunt u de volgende opdracht gebruiken:ALTER ENDPOINT TestEP as tcp (listener_port=1980)
Meer informatie
Vergelijkbare problemen kunnen ook optreden met andere TCP-eindpunten, zoals die zijn gemaakt voor databasespiegeling, en de foutberichten bij het opstarten van SQL Server worden dienovereenkomstig gewijzigd.