web-dev-qa-db-fra.com

Le format de la chaîne d'initialisation n'est pas conforme à la spécification commençant à l'index 0

J'ai une application ASP.Net qui fonctionne bien sur ma machine de développement locale.

Lorsque j'exécute cette application en ligne, l'erreur suivante s'affiche.

Le format de la chaîne d'initialisation n'est pas conforme à la spécification commençant à l'index 0

110
G.S Bhangal

Vérifiez votre chaîne de connexion. Si vous avez besoin d’aide, cochez la case Chaînes de connexion , qui contient la liste des chaînes les plus utilisées.

Chaînes de connexion couramment utilisées:

SQL Server 2012

Sécurité standard

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;

Connexion sécurisée

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

Connexion à une instance de SQL Server

La syntaxe de nom de serveur/instance utilisée dans l'option de serveur est la même pour toutes les chaînes de connexion SQL Server.

Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;
Password=myPassword;

SQL Server 2005

Sécurité standard

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;

Connexion sécurisée

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

Connexion à une instance de SQL Server

La syntaxe de nom de serveur/instance utilisée dans l'option de serveur est la même pour toutes les chaînes de connexion SQL Server.

Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;

MySQL

Standard

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

Spécification de TCP port

Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

Oracle

Utilisation de TNS

Data Source=TORCL;User Id=myUsername;Password=myPassword;

Utilisation de la sécurité intégrée

Data Source=TORCL;Integrated Security=SSPI;

Utiliser ODP.NET sans 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;
154
Hanlet Escaño

Cela pourrait aider quelqu'un .. Mon mot de passe contenait un point-virgule et faisait donc face à ce problème.Ajoutez le mot de passe entre guillemets. C'était vraiment une erreur stupide.

J'ai changé le suivant:

<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password=pass;Word" providerName="System.Data.SqlClient" />

à

<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='pass;Word'" providerName="System.Data.SqlClient" />
12
Abdul Rehman Sayed

Définissez le projet contenant votre classe DbContext en tant que projet de démarrage.

Je recevais cette erreur en appelant enable-migrations. Même si dans le Package Manager Console j'ai sélectionné le bon Default project, il cherchait toujours le fichier web.config de ce projet de démarrage, où la chaîne de connexion n'était pas présente.

10
Mart

Assurez-vous que votre chaîne de connexion est dans ce format:

serveur= FOOSERVER; base de données = BLAH_DB; pooling = false; Délai de connexion = 60; Sécurité intégrée = SSPI;

Si votre chaîne ne contient pas la balise server, la méthode renverra avec cette erreur.

4
DBNoob

Référencer le chemin d'accès complet à sp a résolu ce problème pour moi:

var command = new SqlCommand("DatabaseName.dbo.StoredProcedureName", conn)
3
anon

Vérifiez votre chaîne de connexion comme si j'avais oublié d'ajouter services.AddDbContext<dbsContext>(options => options.UseSqlServer("Default"));

Cela provoque l’erreur et ici, lorsque j’ajoute Configuration.GetConnectionString, alors le problème est résolu.

comme maintenant la connexion est:

services.AddDbContext<dbsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default")));

fonctionne bien (Ce problème est résolu pour .net core)

3
user8099291

J'ai eu la même erreur. Dans mon cas, c'était parce qu'il me manquait une citation de clôture pour le mot de passe dans la chaîne de connexion.

Changé de cette

<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password" providerName="System.Data.SqlClient" />

À

<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password'" providerName="System.Data.SqlClient" />
2
Amer Bashoeb

J'ai eu le même problème. Localement, le site fonctionnait bien, mais sur Azure, le message ci-dessus échouait.

s’avère que le problème était de placer la chaîne de connexion dans le ctor, comme ceci:

    public DatabaseContext() 
    {
        Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
    }

Ne fonctionne pas, cela va:

    public DatabaseContext() : base("db")
    {
    }

Me bat..

2
Flores

J'ai résolu ce problème en modifiant la chaîne de connexion dans les paramètres de publication de mon API Web ASP.NET.

Vérifiez ma réponse à ce message: Comment corriger l'erreur :: Le format de la chaîne d'initialisation n'est pas conforme à la spécification commençant à l'index 0 ::

2
ndarriulat

J'ai eu le même problème et j'ai finalement réussi à le résoudre de la manière suivante:

Le problème était dans la définition de la chaîne de connexion dans mon web.config.

<add name="DefaultConnection" connectionString="DefaultConnection_ConnectionString" providerName="System.Data.SqlClient"/>

Ce qui précède fonctionnait parfaitement localement car j’utilisais une base de données locale pour gérer les utilisateurs et les rôles. Lorsque j'ai transféré mon application sur IIS, la base de données locale n'était plus accessible. De plus, j'aimerais utiliser ma base de données dans SQL Server. Je modifie donc la chaîne de connexion ci-dessus avec l'équivalent de base de données SQL Server suivant:

<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"/>

REMARQUE: Ce qui précède suppose également que vous utiliserez le même serveur SQL Server à partir de votre ordinateur local (au cas où vous l'incorporeriez dans votre web.config local - c'est exactement ce que j'ai fait dans mon cas).

1
Andreas Venieris

J'avais une faute de frappe dans mes chaînes de connexion "Database == PESitecore1_master"

<add name="master" connectionString="user id=sa;password=xxxxx;Data Source=APR9038KBD\SQL2014;Database==PESitecore1_master"/>
1
Azadeh Khojandi

Mon problème était que j'avais ajouté le code de journalisation de la base de données à mon constructeur pour un objet de base de données, ce qui semblait causer des dégâts sur mon profil de déploiement Azure.

FYI - J'ai simplifié cet exemple, dans le code réel, il était désactivé en production (mais toujours dans le code)

public class MyDB : DbContext
{
    public MyDB()
    {
         this.Database.Log = x => { Debug.WriteLine(x); };
    }
}
1
Aaron Sherman

Cela se produit également lorsque vous copiez une page Web d’une solution à une autre, puis exécutez votre solution et découvrez qu’elle a un nom de chaîne de connexion différent dans le composant Webconfig. Ensuite, vous modifiez avec précaution le nom de la chaîne de connexion dans le panneau de propriétés de la vue Conception de la page.

Mieux vaut simplement le changer dans la partie code au lieu de la conception.

1
Gellie Ann

J'ai copié et collé la configuration de ma chaîne de connexion dans mon projet de test et j'ai commencé à rencontrer cette erreur. La chaîne de connexion a bien fonctionné dans mon projet WebAPI. Voici ma solution.

var connection = ConfigurationManager.ConnectionStrings["MyConnectionString"];
var unitOfWork = new UnitOfWork(new SqlConnection(connection.ConnectionString));
1
Kris Kilton

J'ai eu le même problème, est venu pour découvrir que le déploiement à IIS n'a pas défini les chaînes de connexion correctement. ils étaient "$ (ReplacableToken_devConnection-Web.config Connection String_0)" lors de l'affichage des chaînes de connexion du site dans IIS, à la place de la chaîne de connexion réelle. Je les ai mis à jour là-bas, et tout a fonctionné comme prévu

1
jason

J'ai supprimé & quot à la fin de la chaîne de connexion et cela a fonctionné

Au lieu de

App=EntityFramework&quot;

Utilisé

App=EntityFramework;

Définissez DefaultConnection comme ci-dessous

<add name="DefaultConnection" connectionString="data source=(local);initial catalog=NamSdb;persist security info=True;user id=sa;password=sa;MultipleActiveResultSets=True;App=EntityFramework;" providerName="System.Data.SqlClient" />

Remarque: Dans connectionString N'incluez pas:
| x | Informations sur les métadonnées: "métadonnées = res: // * /"
| x | Citations codées: "" "

1
Sujay U N

Parfois, le service SQL Server n'a pas été démarré. Cela peut générer l’erreur. Allez dans Services et démarrez Sql Server. Cela devrait le faire fonctionner. enter image description here

0
Claudinei Ferreira

Mon problème n'était pas que la chaîne de connexion que je fournissais était incorrecte ou que la chaîne de connexion dans le fichier app.config que je pensais utiliser était erronée, mais que j'utilisais le mauvais fichier app.config.

0
Jeff Dege