SQL-verbindingsfout: System.Data.SqlClient.SqlException (0x80131904)

Ik zie dit in verschillende situaties en het komt af en toe voor in onze webgebaseerde applicatie die verbinding maakt met de SQL 2008 R2-serverback-end. Gebruikers komen een punt 2-puntsverbinding tegen en zien dit aan en uit. Dacht dat het bandbreedteproblemen waren totdat ik het begon te zien op eindservers die zich op dezelfde kernschakelaar bevinden als deze SQL-server. Ik heb gecontroleerd of externe verbinding is ingeschakeld, poort 1433 is correct ingesteld in Configuratie voor TCP/IP en het enige dat ik zie dat een oorzaak kan zijn, is dat de time-outinstelling is ingesteld op 100000 in de externe verbindingen in plaats van onbeperkt.

De fout is

System.Data.SqlClient.SqlException(0x80131904): Een netwerkgerelateerde of
instantie-specifieke fout opgetreden bij het tot stand brengen van een verbinding met
SQL-server. De server is niet gevonden of was niet toegankelijk. Verifiëren
dat de instantienaam correct is en dat SQL Server is geconfigureerd om
verbindingen op afstand toestaan. (provider: Named Pipes Provider, fout: 40 –
Kan geen verbinding maken met SQL Server)
--->

System.ComponentModel.Win32Exception(0x80004005): Het netwerkpad
is niet gevonden
at

System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection, Action`1 wrapCloseInAction) at
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at
System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo,
SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout,
Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean
integratedSecurity, Boolean withFailover) at
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo
serverInfo, String newPassword, SecureString newSecurePassword,
Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean
withFailover) at
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo
serverInfo, String newPassword, SecureString newSecurePassword,
Boolean redirectedUserInstance, SqlConnectionString connectionOptions,
SqlCredential credential, TimeoutTimer timeout) at
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer
timeout, SqlConnectionString connectionOptions, SqlCredential
credential, String newPassword, SecureString newSecurePassword,
Boolean redirectedUserInstance) at
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity
identity, SqlConnectionString connectionOptions, SqlCredential
credential, Object providerInfo, String newPassword, SecureString
newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString
userConnectionOptions, SessionData reconnectSessionData) at
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions
options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo,
DbConnectionPool pool, DbConnection owningConnection,
DbConnectionOptions userOptions) at
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool
pool, DbConnection owningObject, DbConnectionOptions options,
DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection
owningObject, DbConnectionOptions userOptions, DbConnectionInternal
oldConnection) at
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection
owningObject, DbConnectionOptions userOptions, DbConnectionInternal
oldConnection) at
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection
owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean
allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions
userOptions, DbConnectionInternal& connection) at
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection
owningObject, TaskCompletionSource`1 retry, DbConnectionOptions
userOptions, DbConnectionInternal& connection) at
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection
owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions
userOptions, DbConnectionInternal oldConnection, DbConnectionInternal&
connection) at
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection
outerConnection, DbConnectionFactory connectionFactory,
TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at
System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection
outerConnection, DbConnectionFactory connectionFactory,
TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1
retry) at
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1
retry) at System.Data.SqlClient.SqlConnection.Open() at
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1.b__0()
at
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1
operation) at
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Action
operation) at
System.Data.Entity.Core.EntityClient.EntityConnection.Open()
ClientConnectionId:00000000-0000-0000-0000-000000000000

Antwoord 1, autoriteit 100%

ik had hetzelfde probleem.
ga naar Sql Server Configuratiebeheer->SQL Server netwerkconfiguratie->protocollen voor ‘servername’ en controleer of named pipes is ingeschakeld.


Antwoord 2, autoriteit 100%

Ik had hetzelfde probleem.

Zorg ervoor dat In SQL Server-configuratie –> SQL Server-services –> SQL Server Agent is ingeschakeld

Dit heeft mijn probleem opgelost


Antwoord 3, autoriteit 33%

Iedereen die deze fout heeft, vooral op Azure, probeer ‘tcp:’ toe te voegen aan de db-servernaam in uw verbindingsreeks in uw toepassing. Dit dwingt de sql-client om te communiceren met de database via tcp. Ik neem aan dat de verbinding standaard UDP is en dat er af en toe verbindingsproblemen kunnen zijn


Antwoord 4

Controleer deze stappen.

  1. ga naar Sql Server-configuratiebeheer->SQL Server-netwerkconfiguratie->protocollen voor ‘servernaam’ en controleer of TCP/IP is ingeschakeld.
  2. Open SSMS in run, en controleer of u kunt inloggen op de server met de opgegeven gebruikersnaam/wachtwoord en/of met Windows-authenticatie.
  3. herhaal stap 1 ook voor SQL native client-configuratie

Antwoord 5

Controleer je routes, de update van 28-09-2014 heeft gevolgen voor ons gehad. We moesten onze oudere servers aanpassen en nieuwe routes toevoegen. Hier is het artikel http://www.rackspace.com/knowledge_center/article/updating-servicenet-routes-on-cloud-servers-created-before-june-3-2013


Antwoord 6

Bekijk mijn bericht hier

Hoe gaat het met je? Ik had hetzelfde probleem toen ik probeerde verbinding te maken met
MSSQL Server op afstand met jdbc (dbeaver op debian).

Na een tijdje kwam ik erachter dat mijn firewallconfiguratie dat niet was
correct. Dus misschien kan het je helpen!

Configureer de firewall om netwerkverkeer toe te staan dat gerelateerd is aan SQL
Server en naar de SQL Server Browser-service.

Vier uitzonderingen moeten worden geconfigureerd in Windows Firewall om toegang toe te staan
naar SQL Server:

Een poortuitzondering voor TCP-poort 1433. In de wizard Nieuwe inkomende regel
dialoogvenster, gebruik dan de volgende informatie om een poortuitzondering te maken:
Selecteer poort Selecteer TCP en specificeer poort 1433 Sta de verbinding toe
Kies alle drie de profielen (Domain, Private & Public) Geef de regel een naam
“SQL – TCP 1433″ Een poortuitzondering voor UDP-poort 1434. Klik op Nieuwe regel
opnieuw en gebruik de volgende informatie om een andere poort te maken:
uitzondering: Selecteer Poort Selecteer UDP en specificeer poort 1434 Sta de
verbinding Kies alle drie de profielen (Domein, Private & Public) Naam
de regel “SQL – UDP 1434 Een programma-uitzondering voor sqlservr.exe. Klik
Nieuwe regel opnieuw en gebruik de volgende informatie om een programma te maken
uitzondering: Selecteer Programma Klik op Bladeren om ‘sqlservr.exe’ te selecteren bij
deze locatie: [C:\Program Files\Microsoft SQL
Server\MSSQL11.\MSSQL\Binn\sqlservr.exe] waar
is de naam van uw SQL-instantie. Laat de
verbinding Kies alle drie de profielen (Domein, Private & Public) Naam
de regel SQL – sqlservr.exe Een programma-uitzondering voor sqlbrowser.exe
Klik nogmaals op Nieuwe regel en gebruik de volgende informatie om te maken
een andere programma-uitzondering: Programma selecteren Klik op Bladeren om te selecteren
sqlbrowser.exe op deze locatie: [C:\Program Files\Microsoft SQL
Server\90\Gedeeld\sqlbrowser.exe]. Sta de verbinding toe Alles kiezen
drie profielen (Domain, Private & Public) Noem de regel SQL –
sqlbrowser.exe

Bron:
http://blog.citrix24.com/configure-sql -express-to-accept-remote-connections/

Other episodes