2010-08-31 23 views
5

Tengo problemas para conectarme a mi servidor de base de datos. El servidor de la base de datos no es local, estoy conectado a través de su dirección IP.No se pudo abrir una conexión con SQL Server

Funciona bien en mi máquina de desarrollo. Después de publicar el sitio web en mi servidor, no se puede conectar a mi servidor de base de datos.

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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

¿Por qué mi servidor de publicación no puede conectarse al servidor de la base de datos, mientras que funciona bien a través de la máquina de desarrollo?

Respuesta

1

voy a tratar de ir dos por dos en la depuración psíquica para hoy ...

voy a suponer que usted no está utilizando la seguridad integrada? De ser así, podría explicar las cosas, ya que la cuenta en su máquina local probablemente tenga permisos, pero la cuenta del sistema que se está ejecutando en el servidor no tiene. Solo un tiro en la oscuridad sin embargo.

+1

Tu imagen te hace ver que hay una buena probabilidad de su psíquica. –

+0

He cambiado agregó esto a la conexión Integrated Security = SSPI; y no funcionó – nezdet

+0

@nezdet: Su cambio de hecho agregó la autenticación de Windows explícitamente. El problema que está teniendo, si es lo que Josh sugiere, persistirá a menos que cambie las credenciales con las que su servidor web se ejecuta a un conjunto que tiene acceso a la base de datos (el suyo propio, por ejemplo, aunque siempre debe intentar usar el servicio cuentas para servidores web. –

1

Parece que su servidor no puede hacer la conexión de red, en lugar de un problema de seguridad.

  • Asegúrese de que los servidores de seguridad tanto en la base de datos como en los servidores de aplicaciones permitan el tráfico en el puerto (1433).
  • Asegúrese de que puede hacer ping o tracert desde ambas máquinas.
+0

funciona el ping de ambos servidores, Cerré el servidor de seguridad en el servidor de publicación, – nezdet

4

A menudo tuve ese problema. Principalmente es por dos problemas.

  1. Abra el Administrador de configuración de SQL Server.

    • Compruebe si la configuración de red del servidor SQL admite TCP/IP, si está deshabilitada, actívela. p. SqlServer 2005 Configuración de red, protocolos para SQLEXPRESS
  2. Abra el SQL Server Management Studio

    • Haga clic en las Propiedades de SQL Server (clic derecho en el nombre del servidor y seleccione propiedades ).
    • Después de eso, seleccione la página "Seguridad" y cambie la verificación a "SQL Server and Windows Authentication mode".

eso es todo.

+0

Esto ya estaba hecho: - TCP/IP está habilitado - y SQL Server y "Windows Aut hentication mode "también está marcado, – nezdet

+0

La conexión desde mi cliente funciona bien, pero ahora desde el servidor. No sé por qué – nezdet

+0

Quizás en el servidor, el protocolo del cliente no permita TCP/IP. También puede verificarlo en su servidor con el Administrador de configuración de SQL Server. Solo tiene que buscar "SQL Native Client Configuration/Client Protocols" – BitKFu

0

¿Es la primera vez que publica su sitio web en el servidor web? si es así, ¿está seguro de haber configurado correctamente la cadena de conexión?

Necesita crear un inicio de sesión (de maldición, una contraseña para eso también) y la dirección IP de ese SQL en el servidor web.

Necesita la dirección IP del host del servidor sql, Nombre de la base de datos, UId, Pwd.

+0

No es la primera vez, tengo algunas otras aplicaciones que están conectadas localy a la base de datos, esta aplicación se conecta a un servidor que no está en local, – nezdet

0

Estoy de acuerdo en que esto suena como un problema de red y no un problema de seguridad.

Remoto en el servidor web y haga ping al servidor de BD por dirección IP.Si esto no funciona, su servidor no puede ver el servidor de base de datos a través de esa dirección (subred diferente, configuración incorrecta de firewall/proxy, etc.). Puede haber una dirección de proxy que debe usar para llegar al servidor de base de datos desde el servidor web, o su servidor web también puede ser la puerta de enlace e IIS no sabe buscar el servidor de base de datos en la LAN. Si funciona, es posible que las computadoras no estén hablando en el mismo puerto o que el firewall esté bloqueando ese puerto que sale del servidor web.

0

Pasé horas tratando de conectarme al servidor SQL usando sqlcmd. Inhabilité mi servidor de seguridad, revisé todas las direcciones IP enumeradas en "Protocolos para SQLEXPRESS" y edité el archivo de mi servidor. Intenté usar diferentes ips y nombre de máquina para conectarme al servidor. Pero nada de trabajo funcionó. Después de horas de investigación, descubrí que cometí una equivocación absolutamente estúpida que me impedía conectarme. Quiero recordarle a la gente que la cadena de conexión no distingue entre mayúsculas y minúsculas. ¡Pero la opción es! lo que hice es que puse

sqlcmd -s .\sqlserver

Pero la cadena correcta es

sqlcmd -S .\sqlserver so watch out, people

Cuestiones relacionadas