none
Error al conectarme a base de datos RRS feed

  • Pregunta

  • Previo saludo.

    Mi problema es el siguiente:

    Subi mi pagina web a un hosting de asp.net(smarterasp.net), la cadena de conexion que uso para esta aplicación apunta a un servidor con ip fija que no es parte del hosting, siendo de esta forma:

    "Data Source = 190.40.100.95; Initial Catalog =BD; User ID=user; Password=contraseña;"

    La aplicación con esta cadena de conexión ejecutándola desde mi pc, en cualquier lugar accede normal.

    Cuando accedo desde el sql server con los datos de la conexión también se conecta normalmente.

    El problema surgió cuando lo subí al hosting, parece que no funciona la cadena de conexión, saliendo el siguiente error:

    The network path was not found

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

    Exception Details: System.ComponentModel.Win32Exception: The network path was not found

    Stack Trace: 

    [Win32Exception (0x80004005): The network path was not found]
    
    [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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)]
       System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5341687
       System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +546
       System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) +5353471
       System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +145
       System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +923
       System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +311
       System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) +646
       System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +278
       System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +38
       System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +732
       System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +85
       System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +1057
       System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +78
       System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +196
       System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +146
       System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +16
       System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +94
       System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +110
       System.Data.SqlClient.SqlConnection.Open() +96

    Espero puedan ayudarme con el problema que estoy teniendo.... de antemano muchas gracias.....


    Aldo Franz Laura Robles


    • Editado Aldito jueves, 9 de julio de 2015 4:27 error
    jueves, 9 de julio de 2015 4:25

Respuestas

  • Es muy posible que el firewall de tu hosting tenga cerradas las conexiones TCP salientes al puerto 1433, y que por eso no puedas conectar. Tendrías que hablar con los responsables del hosting para verificarlo, y pedir que te abran el puerto si es necesario.

    La otra posibilidad es que estén cerradas las conexiones entrantes en el firewall de tu servidor SQL, pero si ya has hecho pruebas desde un PC en varias ubicaciones distintas, entonces esto es menos probable (aunque podría ser que el firewall estuviese abierto selectivamente para ciertas IP sí y para otras no).

    jueves, 9 de julio de 2015 5:54
  • Potenciando lo que dice Alberto, porque estoy seguro que deben ir por ahí los tiros. Yo he probado contra tu ip, y también me da error de red, por lo que puedo entender que igual desde donde tu accedes al server no hay firewall que te pare pero desde tu isp ... puede haberlo (o eso o que por prudencia esa no es la ip real que sería muy sensato)

    Adicionalmente

    * considera que las comunicaciones isp-server vayan cifradas si no estarás exponiendo tu trafico en claro y puede resultar peligroso.

    * Considera que tu web puede tener un delay insufrible por las comunicaciones entre el isp y tu servidor

    * Considera que tu servidor sql puede ser victima de ataques de denegación de servicio a través de tu página

    En resumen, yo personalmente me replantearía por completo la arquitectura e intentaría usar un servidor dentro del hosting.

    Para llevar los datos que necesites desde tu server a ese hosting hay muchas alternativas.


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    jueves, 9 de julio de 2015 8:11
    Moderador

Todas las respuestas

  • Es muy posible que el firewall de tu hosting tenga cerradas las conexiones TCP salientes al puerto 1433, y que por eso no puedas conectar. Tendrías que hablar con los responsables del hosting para verificarlo, y pedir que te abran el puerto si es necesario.

    La otra posibilidad es que estén cerradas las conexiones entrantes en el firewall de tu servidor SQL, pero si ya has hecho pruebas desde un PC en varias ubicaciones distintas, entonces esto es menos probable (aunque podría ser que el firewall estuviese abierto selectivamente para ciertas IP sí y para otras no).

    jueves, 9 de julio de 2015 5:54
  • Potenciando lo que dice Alberto, porque estoy seguro que deben ir por ahí los tiros. Yo he probado contra tu ip, y también me da error de red, por lo que puedo entender que igual desde donde tu accedes al server no hay firewall que te pare pero desde tu isp ... puede haberlo (o eso o que por prudencia esa no es la ip real que sería muy sensato)

    Adicionalmente

    * considera que las comunicaciones isp-server vayan cifradas si no estarás exponiendo tu trafico en claro y puede resultar peligroso.

    * Considera que tu web puede tener un delay insufrible por las comunicaciones entre el isp y tu servidor

    * Considera que tu servidor sql puede ser victima de ataques de denegación de servicio a través de tu página

    En resumen, yo personalmente me replantearía por completo la arquitectura e intentaría usar un servidor dentro del hosting.

    Para llevar los datos que necesites desde tu server a ese hosting hay muchas alternativas.


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    jueves, 9 de julio de 2015 8:11
    Moderador
  • Estoy en la misma situación!, pudiste resolver el problema?
    viernes, 7 de agosto de 2015 2:00
  • Hice la consulta a los chicos del hosting, básicamente me respondieron que por razones de performance no admiten conexiones a servidores remotos, pero que si me pasaba a un plan premium podía acceder al port manager y modificar los puertos a mi antojo, no me quedara otra que pagar. De todas formas me explica también que tiene reembolso del dinero si no te gusto el trial de los 60 días.

    Te dejo un link a la charla que tuve con los chicos, muy rapidos para contestar!

    http://i61.tinypic.com/29zy7uc.png

    viernes, 7 de agosto de 2015 14:55