c# - tipos - Error en el comando update-database en la migración del primer código
update database force (9)
Se produjo un error relacionado con la red o específico de la instancia al establecer una conexión a 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: interfaces de red SQL, error: 26 - Error al localizar el servidor / instancia especificada)
Este mensaje de error le informa que no es posible conectarse a SQL Server
. Las posibles razones y su eliminación se describen a continuación:
1) SQL Server no se inicia. Comenzando le permitirá ver su instancia / servidor SQL en la lista desplegable de servidores SQL disponibles.
- Vaya al menú Inicio -> Panel de control -> Herramientas de administración -> Servicios.
- En la lista de servicios, busque SQL Server (nombre de la instancia, por defecto es EZPARTS5) y verifique su estado, debe iniciarse
(Si no está iniciado, haga clic con el botón derecho en SQL Server y seleccione
Comience desde el menú contextual).
2) El firewall está bloqueando el puerto 1433 (puerto estándar MSSQL para las conexiones). Se puede deshabilitar siguiendo los pasos a continuación:
- Vaya al menú Inicio -> Panel de control -> Herramientas de administración -> Servicios.
- Encontrar el servicio de Firewall, debe estar deshabilitado (si no lo está, haga clic con el botón derecho en el servicio y seleccione Detener en el menú contextual).
Nota: Puede encontrar más información sobre esto en el sitio oficial de Microsoft: Link
3) El protocolo TCP / IP está deshabilitado para los protocolos MSSQL. Para habilitarlo, vea los pasos a continuación:
- Vaya a Administrador de configuración de SQL Server en el menú Inicio.
- Especifique la configuración del protocolo TCP / IP en el Administrador de configuración de SQL Server.
- Reinicia la computadora.
Nota: Puede encontrar más información sobre esto en el sitio oficial de Microsoft: Link
4) Asegúrese de que su motor de base de datos esté configurado para aceptar conexiones remotas (si está utilizando una base de datos centralizada):
- Abra SQL Server Management Studio.
- Haga clic con el botón derecho en Instancia de SQL Server -> Propiedades -> Conexiones -> Marque la casilla Permitir conexiones remotas a este servidor.
- Vaya a la sección General y verifique el nombre del servidor SQL especificado en el campo Nombre.
5) Si está utilizando una instancia de SQL Server con nombre, asegúrese de estar usando ese nombre de instancia en sus cadenas de conexión. Por lo general, el formato necesario para especificar el servidor de la base de datos es machinename / instancename.
6) Asegúrese de que su cuenta de inicio de sesión tenga permiso de acceso en la base de datos que utilizó durante el inicio de sesión. Alternativa: si aún no puede obtener ninguna conexión, es posible que desee crear una cuenta de SQL en el servidor, un usuario de SQL correspondiente en la base de datos en cuestión, y simplemente usar estos datos de inicio de sesión de nombre de usuario / contraseña para conectarse a SQL Server.
Referido desde este link
Estoy trabajando en una aplicación de escritorio en WPF y creando SqlRepository con LocalDB para almacenar datos. Estoy usando las siguientes herramientas
- Comunidad Visual Studio 2013 con actualización 2
- Entity Framework 6.1.2 para la primera migración del Código
He creado la base de datos local con la configuración del archivo de base de datos de Microsoft SQL Server (SqlClient). La base de datos creada correctamente y debajo se encuentra la cadena de conexión de Sql
Data Source=(LocalDB)/v11.0;Initial Catalog=D:/USERS/USERNAME/DOCUMENTS/TestDatabase/testdb.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False
Estoy usando la misma cadena de conexión en app.config. Puedo ver el objeto de base de datos en el Explorador de bases de datos de SQL Server en Visual Studio. Pero cuando ejecuto el comando update-database en la consola del gestor de paquetes Nuget, obtengo el siguiente error:
Se produjo un error relacionado con la red o específico de la instancia al establecer una conexión a 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: interfaces de red SQL, error: 26 - Error al localizar el servidor / instancia especificada)
Como se explicó en otras respuestas, el problema generalmente proviene de tener un proyecto inicial incorrecto en la Consola del Administrador de paquetes. En mi caso, la consola estaba ignorando el valor que seleccioné en la lista desplegable Proyecto predeterminado, y también el parámetro -StartUpProjectName
, y reproducía el comportamiento incorrecto de intentar conectarse a algún motor de base de datos predeterminado, como describe la respuesta de Mikk, en mi caso usando un motor SqlExpress.
Mi problema se debió a una configuración de solución incorrecta: si su solución tiene varios proyectos y está destinada a ejecutarse con la opción de configuración "Proyectos de inicio múltiples", pero la acaba de descargar del repositorio de control de código fuente, es posible que la opción de configuración predeterminada "Proyecto de inicio único" se está aplicando a la solución (este valor de configuración generalmente no se incluye en el control del código fuente). En este caso, la Consola del administrador de paquetes simplemente ignora el proyecto de inicio seleccionado en su combo y solo aplica el proyecto de inicio predeterminado en la solución, que puede no tener una cadena de conexión, como se especifica en la respuesta de Mikk.
Así que lo arreglé cambiando las propiedades de la solución: Propiedades Common properties
/ Startup project
/ Seleccionar Multiple startup projects
lugar de Multiple startup projects
de Single startup project
, y luego la Consola del Administrador de paquetes aceptaría el nombre del Proyecto y actualizaría la base de datos correcta.
Intente con esta cadena de conexión:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)/v11.0;AttachDbFilename=D:/USERS/USERNAME/DOCUMENTS/TestDatabase/testdb.MDF;Initial Catalog=testdb;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
La respuesta de Diego es correcta.
Este problema ocurre cuando no hay una cadena de conexión en el proyecto marcado como proyecto de inicio. Entonces EF intenta conectarse a algún motor de base de datos predeterminado para realizar la actualización. En mi caso trató de usar Express, y por alguna razón no pudo conectarse. Y el error fue lanzado.
Ejecute su "base de datos de actualización" con la opción "-Verbose". Una de las líneas allí muestra qué proyecto de inicio se utiliza. Verifique la cadena de conexión en este proyecto o cambie el proyecto de inicio al que tenga la cadena de conexión correcta. Eso resuelve el problema.
Pude resolver esto agregando parámetros al comando update-database :
update-database -StartupProjectName MyApp.Web -ConnectionStringName MyAppConnectStringInWebConfig
Resolví este error cambiando el proyecto inicial al Proyecto Entidad.
Mira:
Actualización-Base de datos -Verbose usando el proyecto de inicio ''SCVE.Web''. <- este error de ir usando el proyecto NuGet ''SCVE.EntityFramework''.
Si está intentando conectarse a Sql Server en lugar de a localdb, asegúrese de que la fábrica de conexiones predeterminada en el archivo web.config sea la siguiente:
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value="Data Source=./SQLEXPRESS2012; Integrated Security=True; MultipleActiveResultSets=True" />
</parameters>
</defaultConnectionFactory>
Tuve este mismo problema con un proyecto ASP.NET recién creado.
Primero intenté configurar el proyecto de inicio como se mencionó anteriormente. No se seleccionó ningún proyecto de inicio y no pude seleccionar uno.
En última instancia, actualicé mi Visual Studio de 2015 Update 1 a 2015 Update 3 y
update-database
Ejecutado sin problemas.
Tuve un problema similar y lo arreglé cuando cambié el "proyecto de inicio" de otro módulo al módulo que contenía referencias a todos los otros proyectos en la solución. Haga clic derecho en el módulo >> haga clic en "Establecer como proyecto de inicio"