none
Conexión remota RRS feed

  • Pregunta

  • Saludos, estoy haciendo programita de gestión en VB2005, la cual se comunica con una base de datos SQL Server 2005 Express. En principio se requería que el sistema funcionara solo de manera local, lo cual funcionaba perfectamente, pero surgio el requerimiento de que la base de datos pueda estar en otro equipo. Para esto se me ocurrio pedir el nombre del servidor la primera vez que se ejecuta el sistema, si es local, uso la cadena de conexión antigua que funciona bien, y que sería la siguiente:

    conn.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=" & My.Computer.FileSystem.CurrentDirectory & "\BDInmobiliaria.mdf;Integrated Security=True;User Instance=True"

     si no es localhost paso el servidor como parametro de la siguiente manera:

    conn.ConnectionString = "Data Source=" & miServidor & "\SQLEXPRESS;AttachDbFilename=\grupo verial uruguay\Gestor inmobiliario\BDInmobiliaria.mdf;Integrated Security=True;User Instance=True"

     

    "El archivo "\\Hasee1\grupo verial uruguay\Gestor inmobiliario\BDInmobiliaria.mdf" se encuentra en una ruta de red no permitida para archivos de base de datos.
    Error al intentar adjuntar una base de datos nombrada automáticamente para el archivo \\Servidor\C\\BD\MiBase.mdf.
    Ya existe una base de datos con el mismo nombre, no se puede abrir el archivo especificado o se encuentra en un recurso compartido UNC."
     
    Ya habilite las conexiones remotas con sql server, comparti el disco de mi compañero, intente crear un origen de datos, conectarme con el explorador de servidores, habilitar el puerto 1433 del firewall de windows, incluso probe copiar la base al directorio por defecto (creo que es: C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data) para conectarme a esa ubicación.
     
    Se agradece de antemano cualquier consejo que puedan prestarme.
    • Cambiado Enrique M. Montejo lunes, 9 de mayo de 2011 17:31 acceso a datos (De:Lenguaje VB.NET)
    miércoles, 29 de octubre de 2008 14:13

Todas las respuestas

  • Aparte de que alguna otra cosa pudiera fallar, a primera vista, veo que falla la cadena de conexión remota. Fíjate que: ''grupo verial uruguay\Gestor inmobiliario\BDInmobiliaria.mdf''  no especifica en qué servidor está, ni en que unidad, es una ruta incompleta... valdría si fuera local y la aplicación estuviera montada justo en un nivel superior a ese.

     

    Espera que le proporciones la ruta completa a dicho archivo en ese equipo... Si el nombre del servidor es Haase1 la ruta completa podría ser:

     

    Code Snippet

    \\Haase1\el_disco_donde_Esta_esta_carpeta\grupo verial uruguay\Gestor inmobiliario\BDInmobiliaria.mdf 

     

     

    Adicionalmente si entre la unidad de disco y la carpeta 'grupo verial uruguay' median otras carpetas hasta llegar a esa debes ponerlo también.

     

    nota: recuerda las comillas y que para trabajar con bases de datos es preferible no usar espacios en blanco, si necesitas separar usa el guión bajo en lo sucesivo '_' para unir palabras. También es aconsejable no hacer trayectos demasiado largos para no tener problemas de rutas,  por ejemplo la carpeta grupo verial uruguay no podría ser abreviado como GVU . El nombre de la BD es el único que no compensa abreviar, para que su nombre no se confunda con otros posibles parecidos... pero el trayecto...

     

    miércoles, 29 de octubre de 2008 15:15
  • Solucione lo que me dijiste, pero ese no parece ser el problema, al crearse la conexión la cadena queda asi:  

    Data Source=Hasee1\SQLEXPRESS;AttachDbFilename=\\Hasee1\C:\Archivos de programa\Grupo Verial Uruguay\Gestor inmobiliario\BDInmobiliaria.mdf;Integrated Security=True;User Instance=True.

    Al intentar abrirla, me salta la siguiente excepción:

     

    Se detectó System.Data.SqlClient.SqlException
      Class=20
      ErrorCode=-2146232060
      LineNumber=0
      Message="Error mientras se establecía la conexión con el servidor. Al conectar con SQL Server 2005, el error se puede producir porque la configuración predeterminada de SQL Server no admite conexiones remotas. (provider: Interfaces de red SQL, error: 26 - Error al buscar el servidor o instancia especificado)"
      Number=-1
      Server=""
      Source=".Net SqlClient Data Provider"
      State=0
      StackTrace:
           en System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
           en System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
           en System.Data.SqlClient.TdsParser.Connect(Boolean& useFailoverPartner, Boolean& failoverDemandDone, String host, String failoverPartner, String protocol, SqlInternalConnectionTds connHandler, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject, Boolean aliasLookup)
           en System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
           en System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
           en System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
           en System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
           en System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
           en System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
           en System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
           en System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
           en System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
           en System.Data.SqlClient.SqlConnection.Open()
           en Persistencia.Ppersistente.EjecutarEscalar(String cadenaSQL) en C:\Gestor inmobiliario\Persistencia\Ppersistente.vb:línea 72


    Probe conectarme con el explorador de servidores, el cual me da el siguiente error:" \\Hasee1\grupo verial uruguay\Gestor inmobiliario\BDInmobiliaria.mdf se encuentra en un a ruta no permitida para archivos de bases de datos". Tampoco he podido crear origenes de datos ODBC.

     

     

     

    De todas formas agradezco la ayuda y la rapidez con la que has respondido.

    miércoles, 29 de octubre de 2008 16:38
  • Te Cuento que una vez tuve un problema parecido. al parecer no es posible conectarse a una base de datos que este dentro de Archivos de Programas. fijate cmabiando la base a una carpeta del C . Ejemplo C:\BaseDatos\MiBase.mdf
    lunes, 26 de enero de 2009 15:33