.net sql-server sql-server-2008 named-pipes

.net - Error de conexión SQL: System.Data.SqlClient.SqlException(0x80131904)



sql-server sql-server-2008 (6)

Veo esto en varias situaciones y es intermitente en nuestra aplicación basada en web que se conecta al servidor de SQL 2008 R2. Los usuarios están llegando a través de una conexión de punto 2 punto y están viendo esto encendido y apagado. Pensé que se trataba de problemas de ancho de banda hasta que comencé a verlo en servidores de terminal que se encuentran en el mismo conmutador central que este servidor SQL. He comprobado que la conexión remota está habilitada, el Puerto 1433 está configurado correctamente en Configuración para TCP / IP y lo único que veo es que la causa del tiempo de espera se establece en 100000 en las conexiones remotas en lugar de ilimitada.

El error es

System.Data.SqlClient.SqlException ( 0x80131904 ): Se produjo un error específico de la instancia o relacionado con la red al establecer una conexión a SQL Server. El servidor no se encontró o no estaba accesible. Verifique que el nombre de la instancia sea correcto y que SQL Server esté configurado para permitir conexiones remotas. (proveedor: Named Pipes Provider, error: 40 - No se pudo abrir una conexión a SQL Server) --->

System.ComponentModel.Win32Exception ( 0x80004005 ): la ruta de la red no se encontró 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


Cualquiera que tenga este error, especialmente en Azure, intente agregar "tcp:" al db-server-name en su cadena de conexión en su aplicación. Esto obliga al cliente de SQL a comunicarse con la base de datos usando tcp. Supongo que la conexión es UDP de forma predeterminada y puede haber problemas de conexión intermitentes


Revisa estos pasos.

  1. vaya a Administración de la configuración del servidor Sql-> Configuración de red del servidor SQL-> protocolos para ''servername'' y verifique que TCP / IP esté habilitado.
  2. Abra SSMS en ejecución, y verifique que pueda iniciar sesión en el servidor utilizando el nombre de usuario / contraseña especificados y / o la autenticación de Windows.
  3. repita el paso 1 para la configuración del cliente nativo de SQL también

Tuve el mismo problema. Vaya a Administración de la configuración del servidor Sql-> Configuración de red del servidor SQL-> protocolos para ''servername'' y verifique que las canalizaciones con nombre estén habilitadas.


Tuve el mismo problema.

Asegúrese de que en Configuración de SQL Server -> Servicios de SQL Server -> Agente de SQL Server esté habilitado

Esto solucionó mi problema


Ver mi post here

¿Cómo estás? Tuve el mismo problema mientras intentaba conectarme al servidor MSSQL de forma remota utilizando jdbc (dbeaver en debian).

Después de un tiempo, descubrí que la configuración de mi firewall no era correcta. ¡Así que tal vez pueda ayudarte!

Configure el firewall para permitir el tráfico de red relacionado con SQL Server y con el servicio de navegador de SQL Server.

Se deben configurar cuatro excepciones en el Firewall de Windows para permitir el acceso a SQL Server:

Una excepción de puerto para TCP Puerto 1433. En el cuadro de diálogo Asistente para nueva regla de entrada, use la siguiente información para crear una excepción de puerto: Seleccione Puerto Seleccione TCP y especifique el puerto 1433 Permitir la conexión Elija los tres perfiles (Dominio, Privado y Público) Nombre el regla "SQL - TCP 1433" Una excepción de puerto para el puerto UDP 1434. Haga clic en Nueva regla nuevamente y use la siguiente información para crear otra excepción de puerto: Seleccione Puerto Seleccione UDP y especifique puerto 1434 Permitir la conexión Elija los tres perfiles (Dominio, Privado y Público) Nombre la regla "SQL - UDP 1434 Una excepción de programa para sqlservr.exe. Vuelva a hacer clic en Nueva regla y use la siguiente información para crear una excepción del programa: Seleccione Programa. Haga clic en Examinar para seleccionar ''sqlservr.exe'' en esta ubicación: [C: / Archivos de programa / Microsoft SQL Server / MSSQL11. / MSSQL / Binn / sqlservr. exe] donde es el nombre de su instancia de SQL. Permita la conexión Elija los tres perfiles (Dominio, Privado y Público) Asigne un nombre a la regla SQL - sqlservr.exe Una excepción del programa para sqlbrowser.exe Haga clic en Nueva regla nuevamente y use la siguiente información para crear otra excepción del programa: Seleccione Programa Haga clic en Examinar para seleccionar sqlbrowser.exe en esta ubicación: [C: / Archivos de programa / Microsoft SQL Server / 90 / Shared / sqlbrowser.exe]. Permitir la conexión Elija los tres perfiles (Dominio, Privado y Público) Asigne un nombre a la regla SQL - sqlbrowser.exe

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