Pregunta

Estoy trabajando en una máquina local (aplicación ASP.NET MVC 4) pero ahora quiero comenzar a usar el servidor SQL de la compañía, por lo que necesito cambiar la cadena de conexión para conectarme a ese servidor remoto.

La configuración es esta:

  • Tengo una conexión VPN donde uso una dirección IP, no puedo mostrar la IP exacta, así que digamos: xxx.xxx.xxx.xxx
  • Tengo nombre de usuario y contraseña para conectarme a VPN - VPNUSername/VPNPassword
  • Cuando uso Microsoft SQL Server Management Studio Para conectarme al servidor remoto, uso la misma IP que uso para conectarme a la VPN - xxx.xxx.xxx.xxx
  • Tengo diferentes nombre de usuario y contraseña para el servidor SQL - SQLUSERNAME/SQLPASSWORD

Tengo una cadena de conexión existente que uso para conectarme al servidor en mi PC, así que pensé que sería suficiente para cambiar los parámetros allí así:

<add name="ProjectName.DAL.MyDbContext"
     providerName="System.Data.SqlClient"
     connectionString="Data Source=xxx.xxx.xxx.xxx;
     Initial Catalog=DatabaseName;Integrated Security=True;         
     MultipleActiveResultSets=True;
     user id=SQLUsername;password=SQLPassword;App=EntityFramework" />

Por lo tanto, los cambios de la cadena de conexión que funcionan y me conecta a mi servidor local son dos:

  1. Data Source= xxx.xxx.xxx.xxx - Estoy usando la IP. Aquí me pregunto si la IP en sí es suficiente. ¿Debo usar http://xxx.xxx.xxx.xxx ¿O simplemente IP está bien?
  2. user id=SQLUsername;pasword=SQLPassword - Estoy usando el mismo nombre de usuario y contraseña que en el Management studio desde donde puedo conectarme correctamente al servidor de eliminación proporcionando el xxx.xxx.xxx.xxx como nombre del servidor y usando sqlusername/sqlpassword en SQL Server Authentincation.

Por lo tanto, para ser claros: en Management Studio, no tengo problemas para conectarme al servidor remoto. Sin embargo, cuando cambio la cadena de conexión a lo que publiqué arriba en mi HomeController Donde tengo una lógica muy simple solo para verificar que se ejecute la llamada a la base de datos:

private MyDbContext db = new MyDbContext();

        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View(db.Users.ToList());
        }

Tengo 3 excepciones:

  1. SQLException (0x80131904): el inicio de sesión falló para el usuario 'VPNUSername'
  2. ProviderIncompatibleException: el proveedor no devolvió una cadena ProvidermanifestToken.
  3. ProviderIncompatibleException: se produjo un error al obtener información del proveedor de la base de datos. Esto puede ser causado por el marco de la entidad utilizando una cadena de conexión incorrecta.

Entonces, además de eso, en mi opinión, y como la excepción número 3 dice que el problema está en la forma en que estoy usando la cadena de conexión, lo que me preocupa también es el Number 1 Excepción que dice que el inicio de sesión es fallado, pero no para mi nombre SQLUSername sino para el nombre de VPNUSERN. Como dije, realmente estoy usando la conexión VPN y uso la misma IP - xxx.xxx.xxx.xxx para conectarse tanto a la VPN como al SQL Server (de Management Studio).

¿Alguna idea de cómo resolver esto?

¿Fue útil?

Solución

Remover Integrated Security=True Desde su cadena de conexión mientras intenta conectarse con un nombre de usuario/contraseña de SQL Server

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top