¿Por qué aparece "No se puede conectar al servidor: un error relacionado con la red o específico de la instancia"?


379

Recibo el siguiente error cuando intento conectarme a SQL Server:

No se puede conectar a 108.163.224.173.

Se produjo un error relacionado con la red o específico de la instancia al establecer una conexión con 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: proveedor de canalizaciones con nombre, error: 40 - No se pudo abrir una conexión a SQL Server) (Microsoft SQL Server, error: 1326)

Este error se produce cuando intento configurar mi base de datos para gridview en Visual Studio 2010. No sé cómo depurar este error.

¿Cómo depurarías este error? ¿Qué pasos debo seguir para determinar qué está pasando realmente aquí, además del mencionado en el mensaje de error?


11
Un ping no es confiable para probar la conectividad de SQL Server, la solicitud de eco ICMP está deshabilitada de manera predeterminada en Windows Server. Un nombre de usuario o contraseña no válidos no es lo que el error te dice, es un error completamente diferente.
Sean Airey

1
Pruebe este artículo, revisa
Sean Airey

3
Vea mi respuesta aquí con mi captura de pantalla si recibió este error con SQL Server {versión} Express, cuando lo configuró por primera vez. Regresé a StackOverflow y volví a usar mi respuesta porque era la única que funcionaba. stackoverflow.com/questions/1391503/…
MacGyver

Tuve este problema en mi servidor virtual cuando quería conectarme al localhost. Al parecer, hubo algún tipo de error al iniciar el sistema operativo; en mi caso, todo se resolvió afortunadamente con un reinicio limpio.
Qohelet

Hoy pasé mucho tiempo en esto, finalmente lo que funcionó para mí es: Abrir el Administrador de configuración del servidor SQL -> Protocolos para <INSTANCE> -> TCP / IP -> Direcciones IP (pestaña) . Vaya a la última entrada IP All y mencione el puerto TCP 1433 . Ahora reinicie SQL Server (INSTANCE) usando services.msc . Después de esto, el problema se resolvió.
ani627

Respuestas:


301

Encontré las siguientes técnicas útiles:

  1. Asegúrese de que su motor de base de datos esté configurado para aceptar conexiones remotas :

    • Inicio> Todos los programas> SQL Server 2005> Herramientas de configuración> Configuración de área de superficie de SQL Server
    • Haga clic en Configuración de área de superficie para servicios y conexiones
    • Seleccione la instancia que tiene un problema> Motor de base de datos> Conexiones remotas
    • Habilitar conexiones locales y remotas
    • Reiniciar instancia
  2. Es posible que deba crear una excepción en el firewall para la instancia y el puerto de SQL Server que está utilizando:

    • Inicio> Ejecutar> Firewall.cpl
    • Haga clic en la pestaña de excepciones
    • Agregue sqlservr.exe (generalmente ubicado en C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin, verifique las instalaciones para la ruta de la carpeta real) y el puerto (el valor predeterminado es1433 )
    • Verifique también su cadena de conexión
  3. Compruebe si los servicios de su servidor SQL están funcionando correctamente:

    • Vaya a Todos los programas> Microsoft SQL Server 2008> Herramientas de configuración> Administrador de configuración de SQL Server> Servicios de SQL Server
    • Verifique para asegurarse de que el estado del servicio de SQL Server sea Running

    Además, asegúrese de que su servidor remoto esté en la misma red . Ejecute sqlcmd -Lpara determinar si su servidor está incluido en su lista de redes.

  4. Habilitar TCP / IP en la configuración del servidor SQL

    Cuando dos o más servidores SQL se conectan a través de la red, se comunican mediante TCP / IP. El puerto predeterminado de instalación de SQL Server es 1433. Este puerto se puede cambiar a través del Administrador de configuración de SQL Server. TCP / IP debe estar habilitado para que SQL Server esté conectado.

    • Vaya a Todos los programas >> Microsoft SQL Server 2008 >> Herramientas de configuración >> Administrador de configuración de SQL Server >> Seleccione TCP / IP
    • Haga clic derecho en TCP / IP >> Haga clic en Habilitar

    Debe reiniciar los servicios de SQL Server para que todos los cambios surtan efecto. Haga clic derecho y vaya a las propiedades del menú para seleccionar la ubicación donde se puede cambiar el puerto predeterminado de SQL Server.


10
Habilitar TCP / IP en la configuración de SQL Server fue la solución para mí cuando usé SQL Server 2014 Express.
Mike Richards

73
Hoy pasé mucho tiempo en esto, finalmente lo que funcionó para mí es: Abrir el Administrador de configuración del servidor SQL -> Protocolos para <INSTANCE> -> TCP / IP -> Direcciones IP (pestaña) . Vaya a la última entrada IP All y mencione el puerto TCP 1433 . Ahora reinicie SQL Server (<INSTANCE>) usando services.msc . ¡Después de esto, el problema se resolvió!
ani627

1
También estaba enfrentando el problema particular en mi servidor Sql local y lo resolví revisando los servicios locales del sistema operativo y busqué los servicios Sql específicos y los comencé uno por uno. Funcionó perfecto.
Faisal Naseer

44
Yo también tuve el mismo problema, cuando inicié sesión en el servidor sql descubrí que el servicio mssqlserer se detuvo, lo inició. Ahora pude conectarme a la instancia
Rak

15
RECUERDE también al ENABLE SQL Server Browserservicio. He configurado varios servidores SQL en mi tiempo ... Sin embargo, este paso siempre parece tener diferentes escenarios involucrados :)
mschr

125

Tengo una solución para mí:

Abra el "Administrador de configuración de SQL Server"

Ahora haga clic en "Configuración de red de SQL Server" y haga clic en "Protocolos para nombre "

Haga clic derecho en "TCP / IP" (asegúrese de que esté habilitado) Haga clic en Propiedades

Ahora seleccione la pestaña "Direcciones IP" y vaya a la última entrada "IP todo"

Ingrese "Puerto TCP" 1433.

Ahora Restart "SQL Server .Nombre." utilizando "services.msc" (winKey + r)

Funcionará...


Intentando esto, pero por alguna razón cuando hago clic derecho y elijo "Propiedades" en "TCP / IP" en windows10, no abre la ventana de diálogo para eso. Los otros nodos en general en la vista de árbol hacen que los cuadros de diálogo emergentes estén bien. ¿Alguien tiene este problema e ideas para superarlo?
Ryan Betker - healthNCode

3
En SQL Server 2014 use (localdb) \ mssqllocaldb en lugar de (localdb) \ v11.0
Shalva Avanashvili

67
¡Copy pegó mi comentario (que fue publicado el 24 de febrero de 2015 - 7 meses antes de su publicación) como respuesta sin darme créditos! : P
ani627

2
Esto funcionó. No pude conectarme a SQL Server 2016. ¡Hice estos cambios y funcionó! Gracias.
Ankur

1
esto funciona para mi. solo tenía que iniciar los servicios en "service.msc" después de habilitar TCP / IP y Canalizaciones con nombre en el administrador de configuración.
Alif Noushad

100

Agregar mi comentario muy votado como respuesta con capturas de pantalla.

Pasé mucho tiempo en esto, finalmente lo que funcionó para mí es:

1) Abra el Administrador de configuración del servidor SQL -> Configuración de red del servidor SQL -> Protocolos para <(INSTANCIA)> -> TCP / IP (haga doble clic en él).

ingrese la descripción de la imagen aquí

2) Seleccione -> Direcciones IP (pestaña) .

3) Vaya a la última entrada IP All y mencione el puerto TCP 1433 .

ingrese la descripción de la imagen aquí

4) Presione Win+Re ingrese services.msc .

5) Ahora reinicie SQL Server <(INSTANCE)> .

ingrese la descripción de la imagen aquí

¡Después de esto, el problema se resolvió!



Trabajó para mí, SQL Express 2012
lost_in_magento 01 de

¡Me funcionó en el servidor SQL 2012 después de habilitar TCP, agregué el número de puerto 1433 a TCP ALL y reinicié el servicio!
Chirag Khatsuriya

Para mí, además, tenía que permitir TCP 1433 y UDP 1434 en el cortafuegos
MarkusEgle

83

Estoy resolviendo ese problema abriendo Servicios y luego empiezo a ejecutar el servicio Servidor SQL (Sqlexpress) .

Imagen de servicio


3
He visto dónde se configuró el servicio de Windows de SQL Server en Tipo de inicio manual, por lo que no se reinició al reiniciar. Debe establecerse en Automático.
robertburke

2
Esto es exactamente lo que hice, mi estado se estaba ejecutando y StartupType era automático, pero aún así me enfrenté al problema, así que utilicé los servicios del tipo de ventana Ejecutar y luego hice services.mscclic derecho en SQL Server (SQL EXPRESS) para el menú contextual y simplemente detuve e inicie el servicio de nuevo y funciona bien para mí, la esperanza ayuda.
shaijut

22

Este error se produjo principalmente cuando se detiene el Servicio SQL. Debe reiniciar el servicio. Para ir a esta ventana, debe buscar los Servicios de esta manera: ingrese la descripción de la imagen aquí

Luego busque SQLSERVER (MSSQLSERVER) y reinicie el servicio.

ingrese la descripción de la imagen aquí

Espero que esto funcione.


18

Presione window + R (Run window Open)y en el tipo de ventana de ejecución "services.msc"y abra los nuevos servicios, encuentre el SERVIDOR SQL con el nombre de la instancia en mi caso, SQL SERVER(SQLEXPRESS)luego inicie este servicio e intente nuevamente, funciona para mí Espero que también funcione para usted.ingrese la descripción de la imagen aquí


La respuesta fue proporcionada previamente. No tengo ninguna razón para publicarlo de nuevo
Anik Saha

8
amigo estoy enfrentando el mismo problema, pero no conozco la ventana de servicios abiertos, entonces encontré una manera y pensé en compartir con la gente
Hafiz Asad

Gracias, @HafizAsad. Tu respuesta me funciona.
Adnan Ahmad

@AdnanAhmad de nada. Gracias por tu apreciación.
Hafiz Asad

16

En caso de que estés usando la Edición Express :

Añadir "\SQLEXPRESS" después del nombre de su servidor

p.ej "MY-SERVER\SQLEXPRESS"

ingrese la descripción de la imagen aquí


13

Tuve el mismo error cuando quise ejecutar mi proyecto WinForms (que incluye trabajar con una base de datos de SQL Server y que funcionó perfectamente en mi PC) en otra PC. El problema estaba en el Firewall de Windows en mi PC. Resolví esto agregando dos reglas. Este es todo el procedimiento para permitir SQL Server a través del Firewall de Windows:

  1. Abra "Ejecutar" e ingrese services.msc
  2. Encuentre el servicio para SQL Server (nombre de instancia) y el navegador SQL Server. Uno a la vez, haga clic derecho, seleccione "Propiedades", copie la ruta al archivo exe
  3. Luego firewall.cpl, abra , haga clic en permitir una aplicación o agregue una regla, agregue la ruta copiada previamente (hay un procedimiento que debe seguir), marque Dominio y Privado, desmarque Público.

Este es el enlace de YouTube donde puede ver este procedimiento: Permitir SQL Server a través del Firewall de Windows


Funciona perfectamente para mi. Importante: ¡Agregue navegador y servidor en el firewall! +1
BendEg

Estaba teniendo dificultades para localizar el archivo sqlservr.exe, esto sirvió para encontrarlo.
Stan

11

Si ninguna de las soluciones anteriores funciona (nada funcionó para mí), simplemente reinicie su computadora y podrá conectarse a su servidor sql (localhost).


La razón por la que esto funcionará es porque acaba de instalar Sql Server y no ha reiniciado la computadora como se lo indicó la instalación. Entonces, hágalo y luego se crearán los servicios y toda la configuración necesaria que falta.
Sterling Diaz

10

Después de hacer todo lo mencionado aquí:
http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a- conexión-a-servidor-sql-microsoft-sql-server-error / Aún no funcionó para mí.

Los pasos me funcionaron:

Start > Run > cmd > sqlcmd -L

Le indicará el nombre del servidor. Asegúrese de que este nombre de servidor sea el mismo al que está intentando conectarse en el cuadro CONECTAR AL SERVIDOR del estudio de administración SQL.

Cometí este error tonto que sigo usando en MSSQLSERVERlugar de usar este nombre de servidor.

Espero que esto ayude a las personas que cometen errores tontos como yo.

Gracias.


7

Estoy usando SQL Server 2016 y Window 10.

ingrese la descripción de la imagen aquí

Lo primero es permitir la conexión remota a SQL Server. Lo que hice fue escribir sqlservermanager13.msc en el menú de inicio para abrir el Administrador de configuración de SQL Server. Asegúrese de que el estado TCP / IP esté habilitado. ingrese la descripción de la imagen aquí

Verifique su número de puerto TCP haciendo doble clic en el nombre del protocolo TCP / IP. Por lo general, es 1433 por defecto.

ingrese la descripción de la imagen aquí

Los siguientes procedimientos configuran el Firewall de Windows mediante el complemento Firewall de Windows con seguridad avanzada Microsoft Management Console (MMC). El Firewall de Windows con seguridad avanzada solo configura el perfil actual.

Para abrir un puerto en el firewall de Windows para acceso TCP

  1. En el menú Inicio, haga clic en Ejecutar, escriba WF.msc y luego haga clic en Aceptar.
  2. En el Firewall de Windows con seguridad avanzada, en el panel izquierdo, haga clic con el botón derecho en Reglas de entrada y luego haga clic en Nueva regla en el panel de acciones.
  3. En el cuadro de diálogo Tipo de regla, seleccione Puerto y luego haga clic en Siguiente.
  4. En el cuadro de diálogo Protocolo y puertos, seleccione TCP. Seleccione Puertos locales específicos y luego escriba el número de puerto de la instancia del Motor de base de datos, como 1433 para la instancia predeterminada. Haga clic en Siguiente.
  5. En el cuadro de diálogo Acción, seleccione Permitir la conexión y luego haga clic en Siguiente.
  6. En el cuadro de diálogo Perfil, seleccione cualquier perfil que describa el entorno de conexión de la computadora cuando desee conectarse al Motor de base de datos y luego haga clic en Siguiente.
  7. En el cuadro de diálogo Nombre, escriba un nombre y una descripción para esta regla y luego haga clic en Finalizar.

Otra cosa para configurar.

Para abrir el acceso a SQL Server cuando se usan puertos dinámicos

  1. En el menú Inicio, haga clic en Ejecutar, escriba WF.msc y luego haga clic en Aceptar.
  2. En el Firewall de Windows con seguridad avanzada, en el panel izquierdo, haga clic con el botón derecho en Reglas de entrada y luego haga clic en Nueva regla en el panel de acciones.
  3. En el cuadro de diálogo Tipo de regla, seleccione Programa y luego haga clic en Siguiente.
  4. En el cuadro de diálogo Programa, seleccione Esta ruta del programa. Haga clic en Examinar, vaya a la instancia de SQL Server a la que desea acceder a través del firewall y luego haga clic en Abrir. De manera predeterminada, SQL Server está en C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Binn \ Sqlservr.exe. Haga clic en Siguiente.
  5. En el cuadro de diálogo Acción, seleccione Permitir la conexión y luego haga clic en Siguiente.
  6. En el cuadro de diálogo Perfil, seleccione cualquier perfil que describa el entorno de conexión de la computadora cuando desee conectarse al Motor de base de datos y luego haga clic en Siguiente.
  7. En el cuadro de diálogo Nombre, escriba un nombre y una descripción para esta regla y luego haga clic en Finalizar.

Eche un vistazo a la documentación de Microsoft Configure un Firewall de Windows para acceder al Motor de base de datos


En mi PC con Windows 10, la instancia del servidor SQL está en C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL13.SQLEXPRESS \ MSSQL \ Binn \ Sqlservr.exe
Mayer Spitzer

7

Puedes probar los siguientes métodos.

  • una

    1. Verifique la cadena de conexión del proyecto.
  • si

    1. Vaya a servicios y reinicie la instancia de SQLServer.
  • C

    1. Abra el 'Administrador de configuración de SQLServer'
    2. En el panel izquierdo, seleccione 'Configuración de red de SQLServer' y amplíelo
    3. Seleccione 'Protocolos para MSSQLServer'
    4. En el panel derecho, haga clic en 'TCP / IP'.
    5. En la pestaña 'Protocolo' establezca 'Activado' en 'Sí'
    6. En la pestaña 'Direcciones IP', desplácese hacia abajo
    7. En 'IPAll' configure 'Puerto TCP' en 1433
  • re
    1. Abra 'Firewall con seguridad avanzada'
    2. En la pestaña derecha, seleccione 'Reglas de entrada'

En la pestaña central, encuentre el registro de que 'Puerto local' es 1433.Si no lo encuentra, intente crearlo con los siguientes niveles

  • En el menú Inicio, haga clic en Ejecutar, escriba 'WF.msc' y luego haga clic en Aceptar
  • En el panel izquierdo, haga clic en 'Firewall de Windows con seguridad avanzada'
  • En el panel derecho, haga clic con el botón derecho en 'Reglas de entrada' y luego haga clic en 'Nueva regla'
  • En el cuadro de diálogo Tipo de regla, seleccione 'Puerto' y luego haga clic en Siguiente
  • En el cuadro de diálogo Protocolo y puertos, seleccione 'TCP' y seleccione 'Puertos locales específicos', y luego escriba el número de puerto 1433, haga clic en Siguiente
  • En el cuadro de diálogo Acción, seleccione Permitir la conexión y luego haga clic en Siguiente
  • En el cuadro de diálogo 'Perfil', marcando Dominio, Privado y Público, luego haz clic en Siguiente
  • En el cuadro de diálogo 'Nombre', escriba 'Puerto SQL 1433' y, para obtener una descripción, escriba la descripción propia. Luego haga clic en Finalizar
  1. Luego, en la pestaña central, haga doble clic en el elemento encontrado (Instancia) o en el elemento creado del nombre 'Puerto SQL 1433'.
  2. Seleccione la pestaña 'Alcance' en el cuadro de diálogo abierto (Propiedades de SQL Server)
  3. En la PC local Vaya a google.com en su navegador y busque 'Mi IP'.
  4. luego copia de su 'IP'
  5. Vaya al servidor remoto y en el cuadro de diálogo 'Propiedades del servidor SQL' de la pestaña 'Alcance', en la 'Dirección IP remota' seleccione la opción 'Estas direcciones IP' y haga clic en el botón 'Agregar'
  6. En el cuadro de diálogo abierto (Dirección IP), seleccione la opción 'Esta dirección IP o subred' y pegue su 'IP', haga clic en el botón Aceptar.

7

Esta solución resuelve ambos problemas network error y el serviceservidor SQL subyacente

Respondí una pregunta similar aquí, debe indicar el otro open Run type-> services.msc- en servicios -> sort by stoppedverá un montón de servicios SQL detenidosRight click and start

Para comenzar, hay 4 problemas que podrían estar causando los errores comunes de conectividad del servidor LocalDb SqlExpress Sql SQL Network Interfaces, error: 50 - Local Database Runtime error occurred . Antes de comenzar, debe cambiar el nombre de v11 o v12 a (localdb) \ mssqllocaldb


Troubleshooting Steps
  1. No tiene los servicios en ejecución, ejecute este cmd , net start MSSQLSERVERonet start MSSQL$ instancename
  2. No tiene los puertos de firewall configurados aquíingrese la descripción de la imagen aquí
  3. Su instalación tiene un problema / está dañado (los pasos a continuación ayudan a darle un comienzo limpio y agradable)
  4. No cambió el nombre del V11 o 12 a mssqllocaldb / SqlServer

Descubrí que lo más simple es hacer lo siguiente: he adjuntado las fotos y los pasos para obtener ayuda.


Resolution Steps:

Primero verifique qué instancia ha instalado, puede hacerlo verificando el registro y ejecutando cmd

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore" Si este paso falla, puede eliminar con la opción dcmd> Sqllocaldb.exe d "someDb"
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

SqlLOCALDb_edited.png


5

Estaba experimentando el mismo problema y el problema era que tenía varios proyectos en la solución ( Weby Droid) y, aunque Default projectfue elegido en el Package Manager Console, usó la cadena de conexión del Droidproyecto:

PM> update-database -Verbose
Using StartUp project 'Droid'. <-- DROID
Using NuGet project 'Web'. <-- WEB
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
<!-- BAD TARGET DATABASE -->
Target database is: 'DefaultConnection' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
   [REMOVED TEXT]
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:-1,State:0,Class:20
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

Después de configurar el Startup Projectto Weby el Default Projectin, Package Manger Consolelo puse a trabajar.


5

Tengo que ejecutar el servicio del navegador SQL Server en el Administrador de configuración de SQL Server . La instalación no puede descubrir el servicio recién creado sin esto.


1
Todavía no estoy allí, pero me estoy acercando. En Visual Studio, después de hacer esto, también se desconecta y vuelve a conectar, obteniendo el mismo error, pero ahora al menos por detrás de VS2015 no puedo crear tablas, y las bases de datos que creo seam para ejecutar ahora. (ea, no hay icono de cruz oscura sobre ellos)
user3800527

1
nota después de su comando, esto dio como resultado el nombre del servidor en una máquina local Inicio> Ejecutar> cmd> sqlcmd -L
user3800527

4

Si bien las soluciones anteriores deberían funcionar en el 90% de los casos, ¡pero si todavía está leyendo esta respuesta! Probablemente esté intentando conectarse a un servidor diferente al previsto. Puede deberse a un archivo de configuración que apunta a un servidor SQL diferente del servidor real al que cree que está intentando conectarse.

Me sucedió al menos.


1
Me pasó a mí también. Debería haberlo comprobado antes de intentar intentar diagnosticar el firewall. Tenía la cadena de conexión correcta, pero estaba ejecutando el proyecto incorrecto en la solución ...
VSO

4

Me mudé de una computadora portátil de trabajo en Windows 7 a una computadora portátil de trabajo en Windows 10. Había estado usando SSMS2016 con éxito en Windows 7.

El mismo problema se aplicó con SSMS2012 o SSMS2016. Mi acceso a los servidores de 10 sql usando la autenticación de Windows seguía siendo el mismo. Podría probar esto desde otro servidor. Sin embargo, 2 de los 10 servidores no se conectarían desde mi computadora portátil . Ambos eran ms sql server 9 pero pude conectarme a otras bases de datos sql server 9.

La solución fue agregar una regla de firewall (usando Firewall de Windows con seguridad avanzada).

Cree una regla entrante para cada SSMS, por ejemplo, C: \ Archivos de programa (x86) \ Microsoft SQL Server \ 130 \ Tools \ Binn \ ManagementStudio \ Ssms.exe

No soy un experto en redes, por lo que no he incluido los detalles, pero espero que te oriente en la dirección correcta.


Mensaje de error (regla anterior al cortafuegos) "Se produjo un error relacionado con la red o específico de la instancia al establecer una conexión con SQL Server. El servidor no se encontró o no fue accesible. Verifique que el nombre de la instancia sea correcto y que SQL Server esté configurado para permitir conexiones remotas. (proveedor: interfaces de red SQL, error: 26 - Error al ubicar el servidor / instancia especificada) (.Net SqlClient Data Provider) "


4

Por qué este error es tan aburrido y ruidoso, solo porque puede ocurrir en una situación variada.

He hecho todos los acercamientos aquí arriba, y todavía estoy siendo absorbido. Así que asegúrese de haber hecho lo mismo que yo antes de navegar hacia abajo.

Tal vez no pueda solucionar su situación al instante, pero puedo señalarle una dirección o pensar en usted (El que finalmente se desliza aquí). He comenzado a reflexionar sobre el error de mi programa en ejecución después de asegurarme de que el nombre de la instancia es claramente correcto y configurar mi base de datos para permitir el control remoto siguiendo los métodos anteriores. Después de eso, sospeché que algo malo estaba sucediendo en mi fragmento de código de conexión SQL.

Solución de mi problema:

  • Comprueba mi función sqlconnection

  • Haga clic para ver su configuración

  • Nueva conexión

ingrese la descripción de la imagen aquí

  • Seleccione su nombre de servidor

ingrese la descripción de la imagen aquí

Me funciona reflexionando sobre qué sucede exactamente en el proceso de conexión. Espero que mi pensamiento te lleve a matar tu error.


Esto me ayudó a encontrar que necesitaba ELIMINAR el número de puerto para una cadena de conexión LocalDB, cuando usaba Entity Framework.
ryanwebjackson

4

Intenté todas las otras respuestas a esta pregunta y algunas, si no todas, probablemente jugaron un papel importante para que esto funcionara para mí, pero aún así no pude conectarme a la base de datos de forma remota. Estaba usando un servidor SQL en una máquina virtual de Azure.

Eventualmente recordé que la VM tiene puntos finales controlados por el proxy de la cuenta de Azure, así que fui al Portal de Azure y agregué 1433 como punto final disponible y pude conectarme a mi instancia de SQL.

¡Espero que esto ayude a alguien que ha intentado todas las otras respuestas y todavía no tiene suerte!


4

Resumen

Para solucionar este problema que se encuentra al ejecutar la aplicación local frente a la base de datos remota , use el Administrador de configuración de SQL Server para agregar un alias para la base de datos remota.

Detalles

Me encontré con este problema recientemente cuando hice la transición de una computadora portátil con Windows 7 a una portátil con Windows 10. Estaba ejecutando un desarrollo local y un entorno de tiempo de ejecución accediendo a nuestra base de datos de desarrollo en un servidor remoto. Accedemos a la base de datos de Dev a través de una configuración de alias de servidor a través de la Utilidad de red de cliente de SQL Server (cliconfg.exe). Después de confirmar que el alias se configuró correctamente en las versiones de 64 y 32 bits de la utilidad y que se podía acceder al servidor de la base de datos desde la nueva computadora portátil a través de SSMS, aún recibí el error visto por el OP (no por la dirección IP del OP, de curso).

Era necesario usar el Administrador de configuración de SQL Server para agregar un alias para el servidor de base de datos de desarrollo remoto. Se arreglaron las cosas.

ingrese la descripción de la imagen aquí


4

Puede verificar el estado del servicio de MS SQL Server 2014. En Windows 7 puede hacerlo de la siguiente manera:

  1. Vaya a buscar y escriba "Administrador de configuración de SQL Server 2014
  2. Luego haga clic en "Servicio SQL Server" en el menú izquierdo
  3. Verifique la instancia del estado del servicio de SQL Server si está detenido o ejecutándose
  4. Si se ha detenido, cambie el estado a en ejecución e inicie sesión en SQL Server Management Studio 2014

3

Mi problema comenzó cuando intenté cambiar el servidor de IIS Express a Local IIS (mientras usaba LocalDB ).

ingrese la descripción de la imagen aquí

Estaba usando LocalDB (para fines de desarrollo), y cuando fui a revertir de Local IIS a IIS Express, Visual Studio había cambiado mi fuente de datos de Data Source = (LocalDb) \ MSSQLLocalDB a Data Source =. \ SQLEXPRESS

Cadena de conexión incorrecta

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

Cadena de conexión correcta

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True" providerName="System.Data.SqlClient" />

Espero que esto ayude a alguien por ahí.


Tampoco cometa el error tonto de usar / en lugar de \ en la cadena de conexión.
Andrew Paté

3

Además de probar todo como lo sugiere Teo Chuen Wei Bryan, asegúrese de que también se esté refiriendo al nombre correcto de Servidor / Instancia en la cadena de conexión.

Si está utilizando la forma abreviada de nombre de host / instancia en el servidor de base de datos o en el archivo web.config, asegúrese de utilizar el nombre de dominio completo (FQDN) / instancia

Además, para probar la conectividad desde un servidor donde el cliente del servidor SQL NO está presente,

-> crea un archivo de texto y cambia su extensión de archivo a .udl

-> Haga clic derecho en el archivo y puede ver la pestaña de conexión.

-> Ingrese el nombre del servidor e inicie sesión para probar la conexión al servidor de la base de datos.

Espero que esto ayude.


3

Si de repente encuentra este error, digamos en un entorno de producción y nada ha cambiado, pruebe los siguientes 4 elementos en el orden siguiente para ver si se soluciona.

  1. reinicie el servicio del servidor sql.
  2. reinicie el servicio (digamos IIS) que está llamando al servidor sql. (el problema probablemente esté aquí si el tiempo entre el inicio de la llamada de servicio al servidor SQL y el momento en que termina recibiendo el error de respuesta es muy corto (aproximadamente uno o dos segundos).
  3. reinicie el servidor sql server está encendido.
  4. reinicie el servidor en el que se encuentra el servicio de llamada.

3

Cuando experimenté este error en Visual Studio,

“Se produjo un error relacionado con la red o específico de la instancia al establecer una conexión con 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: proveedor de canalizaciones con nombre, error: 40 - No se pudo abrir una conexión a SQL Server) "

... fue durante la ejecución del siguiente código C #, que intentaba obtener mis datos de SQL Server para mostrarlos en una cuadrícula. La ruptura ocurrió exactamente en la línea que dice connect.Open ():

        using (var connect = Connections.mySqlConnection)
        {
            const string query = "SELECT Name, Birthdate, Narrative FROM Friends";
            using (var command = new SqlCommand(query, connect))
            {
                connect.Open();
                using (var dr = command.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        // blah
                    }
                }
            }
        }

Era inexplicable porque la consulta SQL era muy simple, tenía la cadena de conexión correcta y el servidor de la base de datos estaba disponible. Decidí ejecutar la consulta SQL real manualmente en SQL Management Studio y funcionó bien y arrojó varios registros. Pero una cosa se destacó en los resultados de la consulta: había un texto HTML codificado incorrectamente dentro de un campo de tipo varchar (max) dentro de la tabla Amigos (específicamente, algunos símbolos de comentarios codificados del tipo <!--alojado dentro de los datos de la columna "Narrativa"). La fila de datos sospechosos se veía así:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    &lt;!--HTML Comment -->Once upon a time...

Observe el símbolo HTML codificado " &lt;", que representaba un carácter "<". ¡De alguna manera eso llegó a la base de datos y mi código C # no pudo recogerlo! Falló cada vez en la línea connect.Open ()! Después de editar manualmente esa fila de datos en la tabla de la base de datos Amigos y poner el carácter "<" decodificado, ¡todo funcionó! Así es como debería haber sido esa fila:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    <!--HTML Comment -->Once upon a time...

Edité la única fila incorrecta que tenía usando esta simple declaración ACTUALIZAR a continuación. Pero si tuviera varias filas ofensivas de HTML codificado, es posible que necesite una instrucción UPDATE más elaborada que use la función REPLACE:

UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '&lt%'

Entonces, la moraleja de la historia es (al menos en mi caso), desinfectar su contenido HTML antes de almacenarlo en la base de datos y no obtendrá este error críptico de SQL Server en primer lugar. (Uh, desinfectar / decodificar adecuadamente su contenido HTML es el tema de otra discusión digna de una búsqueda por separado de StackOverflow si necesita más información).


3

Intente agregar ay un ,número de puerto (como en ,1433) al final de su cadena de conexión.


3

La disposición de la etiqueta Xml en Web.config es importante

primero

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

Después

<connectionStrings>
  <add name="SqlConnectionString" connectionString="Data Source=.; Initial Catalog=TestDB; Trusted_Connection=True;" providerName="System.Data.SqlClient" />
</connectionStrings>

3

En mi situación, el servicio MSSQLSERVER tenía un problema, así que reinicié el servicio y el problema se resolvió.

Por lo tanto, recomiendo ir a la aplicación Servicios por: clave de Windows, buscar "Servicios" , luego encontrar su instancia SQL generalmente "SQL Server (MSSQLSERVER)" en el servidor sql de Microsoft. Haga clic derecho en el servicio y haga clic en Inicio, si está deshabilitado, haga clic en Reiniciar.


2

Este error ocurre cuando su instancia de servidor SQL es stopped .

Vaya a todos los programas> SQL Server> Herramientas de configuración> ADMINISTRADOR DE CONFIGURACIÓN DEL SERVIDOR SQL

luego haga clic en SERVICIOS DE SERVIDOR SQL, aparecerá la lista de instancias, seleccione la instancia en cuestión y haga clic en el icono de reproducción en la barra de herramientas superior, espero que esto ayude.

esta respuesta es muy tarde (pero mejor tarde que nunca;)


2

Resolví este problema configurando el proyecto que utiliza Entity Framework como proyecto de inicio y luego ejecuté el comando "update-database".

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.