Connexion SQL Erreur: System.Les données.SqlClient.SqlException (0x80131904)

Je vois cela dans plusieurs situations et il est intermittent dans notre application basée sur le web de la connexion à SQL 2008 R2 servir de back-end. Les utilisateurs sont à venir à travers un point à 2 points de connexion et de voir ce sur et en dehors. Pensais que c'était des problèmes de bande passante jusqu'à ce que je commencé à la voir sur les serveurs terminal server sont sur le même switch que ce serveur SQL. J'ai vérifié la connexion à distance est activée, le Port 1433 est correctement défini dans la Configuration de TCP/IP et la seule chose que je vois qui pourrait être une cause est le paramètre de délai d'attente est fixé à 100000 dans les connexions à distance plutôt que de l'illimité.

L'erreur est

System.Data.SqlClient.SqlException (0x80131904): Un réseau ou d'
spécifique à l'instance erreur s'est produite lors de l'établissement d'une connexion à
SQL Server. Le serveur n'a pas été trouvé ou n'est pas accessible. Vérifier
que le nom de l'instance est correct et que SQL Server est configuré pour
autoriser les connexions à distance. (fournisseur: Fournisseur de canaux Nommés, erreur: 40 -
Impossible d'ouvrir une connexion à SQL Server)
--->

System.ComponentModel.Win32Exception (0x80004005): Le chemin d'accès réseau
n'a pas été trouvé
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
Cela signifie généralement que vous avez des problèmes de réseau. Je commencerais par vérifier auprès de votre ingénieur réseau (en supposant que vous en avez un).
Je doute que c'est un problème de config, sinon vous ne seriez pas seeing this on and off.
peut être utile: blogs.msdn.com/b/sql_protocols/archive/2007/03/31/... aussi, la situation ne s'améliore pas (temporairement) en redémarrant le serveur? si oui, quel est le nombre max de connexions utilisateur autorisé technet.microsoft.com/en-us/library/ms187030(v=sql.105).aspx ?
Pour info: le 0x80131904 n'est pas spécifique à cette erreur Sql. Vous obtiendrez d'autres SqlExceptions trop (eg. Impossible d'insérer une ligne de clé en double dans l'objet..)
Vérifier le Gestionnaire de Configuration SQL Server pour vous assurer d'avoir tous les protocoles client-vous besoin de permis. Dans mon cas, j'avais besoin de TCP/IP activé..

OriginalL'auteur Sean Borner | 2014-10-01