starting - el formato de la cadena de inicialización no se ajusta a la especificación c#
El formato de la cadena de inicialización no se ajusta a la especificación comenzando en el índice 0 (14)
Asegúrese de que su cadena de conexión esté en este formato:
server = FOOSERVER; database = BLAH_DB; pooling = false; Connect Timeout = 60; Seguridad integrada = SSPI;
Si a la cadena le falta la etiqueta del server
, el método volvería con este error.
Tengo una aplicación ASP.Net que funciona bien en mi máquina de desarrollo local.
Cuando ejecuto esta aplicación en línea, muestra el siguiente error
El formato de la cadena de inicialización no se ajusta a la especificación comenzando en el índice 0
Establezca el proyecto que contiene su clase DbContext
como el proyecto de inicio.
Recibí este error al llamar a enable-migrations
. Incluso si en la Package Manager Console
seleccioné el Default project
correcto, seguía buscando el archivo web.config de ese proyecto de inicio, donde la cadena de conexión no estaba presente.
Esto podría ayudar a alguien ... Mi contraseña contenía un punto y coma por lo que estaba enfrentando este problema. Por lo tanto, agregué la contraseña entre comillas. Fue realmente un error tonto.
Cambié lo siguiente:
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password=pass;word" providerName="System.Data.SqlClient" />
a
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password=''pass;word''" providerName="System.Data.SqlClient" />
Esto también ocurre cuando copia una página web de una solución a otra, luego ejecuta su solución y descubre que tiene un nombre de cadena de conexión diferente en el webconfig. Luego, sin cuidado, cambia el nombre de la cadena de conexión en el panel de propiedades en la vista de diseño de la página.
Mejor simplemente cambiarlo en la porción del código en lugar del diseño.
Hacer referencia al camino completo de sp resolvió este problema para mí:
var command = new SqlCommand("DatabaseName.dbo.StoredProcedureName", conn)
Lo resolví cambiando la cadena de conexión en la configuración de publicación de mi ASP.NET Web Api.
Verifique mi respuesta en esta publicación: Cómo reparar el error :: El formato de la cadena de inicialización no cumple con la especificación que comienza en el índice 0 ::
Mi problema fue que agregué un código de registro de base de datos a mi constructor para un objeto DB, y esto pareció causar estragos en mi perfil de implementación azul.
FYI - Simplifiqué este ejemplo, en el código real esto se apagó en producción (pero aún en el código)
public class MyDB : DbContext
{
public MyDB()
{
this.Database.Log = x => { Debug.WriteLine(x); };
}
}
Tuve el mismo problema y finalmente logré resolverlo de la siguiente manera:
El problema estaba en la definición de la cadena de conexión en mi web.config.
<add name="DefaultConnection" connectionString="DefaultConnection_ConnectionString" providerName="System.Data.SqlClient"/>
Lo anterior funcionó perfectamente a nivel local porque utilicé una base de datos local cuando administraba usuarios y roles. Cuando transferí mi aplicación a IIS, la base de datos local ya no era accesible; además, me gustaría usar mi base de datos en SQL Server. Así que cambio la cadena de conexión anterior al siguiente equivalente DB de SQL Server:
<add name="DefaultConnection" connectionString="data source=MY_SQL_SERVER; Initial Catalog=MY_DATABASE_NAME; Persist Security Info=true; User Id=sa;Password=Mybl00dyPa$$" providerName="System.Data.SqlClient"/>
NOTA: Lo anterior, también, suponga que va a utilizar el mismo SQL Server de su casilla local (en caso de que lo incorpore a su web.config local, eso es exactamente lo que hice en mi caso).
Tuve el mismo problema: descubrí que la implementación en IIS no configuraba las cadenas de conexión correctamente. eran ''$ (ReplacableToken_devConnection-Web.config Connection String_0)'' cuando se ven las cadenas de conexión del sitio en IIS, en lugar de la cadena de conexión real. Los actualicé allí, y todo funcionó como esperaba
Tuve error tipográfico en mis cadenas de conexión "Database == PESitecore1_master"
<add name="master" connectionString="user id=sa;password=xxxxx;Data Source=APR9038KBD/SQL2014;Database==PESitecore1_master"/>
Verifique su cadena de conexión como me olvidé de agregar services.AddDbContext<dbsContext>(options => options.UseSqlServer("Default"));
Causa el error y aquí cuando agrego Configuration.GetConnectionString
, resuelve el problema
como ahora la conexión es:
services.AddDbContext<dbsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default")));
funciona bien (Este problema está resuelto para .net core)
Verifique su cadena de conexión. Si necesita ayuda, revise Connection Strings , que tiene una lista de los más utilizados.
Cadenas de conexión comúnmente utilizadas:
SQL Server 2012
Seguridad estándar
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Conexión de confianza
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
Conexión a una instancia de SQL Server
La sintaxis de nombre de servidor / instancia utilizada en la opción de servidor es la misma para todas las cadenas de conexión de SQL Server.
Server=myServerName/myInstanceName;Database=myDataBase;User Id=myUsername;
Password=myPassword;
SQL Server 2005
Seguridad estándar
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Conexión de confianza
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
Conexión a una instancia de SQL Server
La sintaxis de nombre de servidor / instancia utilizada en la opción de servidor es la misma para todas las cadenas de conexión de SQL Server.
Server=myServerName/myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;
MySQL
Estándar
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Especificando el puerto TCP
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Oráculo
Usando TNS
Data Source=TORCL;User Id=myUsername;Password=myPassword;
Usando seguridad integrada
Data Source=TORCL;Integrated Security=SSPI;
Usando ODP.NET sin tnsnames.ora
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
Yo tenía el mismo error. En mi caso, esto fue porque me faltaba una cita de cierre para la contraseña en la cadena de conexión.
Cambiado de esto
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password=''password" providerName="System.Data.SqlClient" />
A
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password=''password''" providerName="System.Data.SqlClient" />
Yo tuve el mismo problema. Localmente, el sitio funcionaba bien, pero en azul fallaba con el mensaje anterior.
Resulta que el problema fue establecer la conexión de cadena en el ctor, así:
public DatabaseContext()
{
Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
}
NO funciona, esto:
public DatabaseContext() : base("db")
{
}
Me gana ...