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

J'ai une application ASP.Net MVC qui fonctionne bien sur ma machine de développement locale. Mais lorsqu'il est déployé sur IIS7, l'erreur suivante apparaît lors de la tentative de connexion:

Le format de la chaîne d’initialisation n’est pas conforme à la spécification à partir de l'indice 0

La plupart des personnes qui publient cette erreur la résolvent en modifiant leur chaîne de connexion. Cependant, ma chaîne de connexion sur l'application locale et sur l'application déployée est la même. La chaîne de connexion est comme ceci:

<add name="ApplicationServices" connectionString="Data Source=*server*\*instance*;Initial Catalog=*database*;Integrated Security=True;"
      providerName="System.Data.SqlClient" />

Quelle est la cause de cette erreur dans mon cas?

17
Banford

Le format de la chaîne d’initialisation n’est pas conforme à la spécification à partir de l'indice 0

Web.config:

<connectionStrings>
    <add name="TestDataConnectionString" connectionString="Data Source=.\SQLExpress;Initial Catalog=TestData;User ID=satest;Password=satest"
     />
  </connectionStrings>

Dans la page aspx.cs, le code doit être écrit dans le format ci-dessous:

SqlConnection con = new
SqlConnection(ConfigurationManager.ConnectionStrings["TestDataConnectionString"].ToString());
16
Guru

L'outil de déploiement Web a créé une mauvaise ligne dans config lorsque j'ai coché la case Activer CodeFirst Migrations.

12
Der_Meister

Dans mon cas, j'ai accidentellement écrit "password:" au lieu de "password =" dans ma chaîne de connexion

1
Zoran P.

J'ai rencontré la même erreur. Dans mon cas, c’était que la transformation de configuration ne fonctionnait pas correctement ..___ Il ya un problème avec la transformation de configuration en ce qui concerne les chaînes de connexion. Quelques références:

On peut aussi écrire le code dans la page aspx.cs en tant que

using (IDbConnection dbConnection =
       new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString))
       {
           // TODO: Write SQL Stored Procedures or SQL Statements using Dapper
       }

Pour ceux qui voudraient en savoir plus sur Dapper .

J'espère que cela t'aides.

1
Shriroop

Si vous avez utilisé Visual Studio Publish Wizard pour le déploiement et que vous avez coché la case Execute Code First Migrations dans Paramètres, un nouveau ConnectionString est automatiquement ajouté au fichier Server Web.config, similaire au 2ème ligne ci-dessous:

<add name="LCWeb3Context" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=LCWeb3;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\LCWeb3.mdf" providerName="System.Data.SqlClient" />
<add name="LCWeb3Context_DatabasePublish" connectionString="LCWeb3Context_DatabasePublish.ConnetionString" providerName="System.Data.SqlClient" />

Tout d'abord, notez que la chaîne de connexion ajoutée contient "ConnetionString": je pense que cela devrait être "ConnectionString"! Mais ce n'est pas la solution.

Pour éviter l'erreur "Le format de la chaîne d'initialisation n'est pas conforme à la spécification commençant à l'index 0", procédez comme suit dans l'Assistant Publication:

  1. Dans Paramètres , sélectionnez Configuration: Libérer  
  2. Dans le Paramètres , n'oubliez pas de coller votre chaîne de connexion dans le champ " Chaîne de connexion à distance
  3. Dans Paramètres , cochez Exécutez Code First Migrations  

Lorsque vous effectuez ce qui précède, la chaîne de connexion ajoutée au Server Web.config lit:

<add name="LCWeb3Context_DatabasePublish" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\LCWeb3.mdf;Initial Catalog=LCWeb3;Integrated Security=True" providerName="System.Data.SqlClient" />

et l'erreur "Le format de la chaîne d'initialisation n'est pas conforme à la spécification commençant à l'index 0" ne se produit plus.

1
MidnightCoder

Assurez-vous que les informations d'identification sont correctes pour la chaîne de connexion dans Web.config. Le mien manquait le mot de passe pour le compte avec des autorisations à la base de données.

1
H. West

J'ai le même problème lorsque j'utilise la commande: " Update-Database " dans la console du gestionnaire de package.

Pour résoudre ce problème, assurez-vous que set startup project correspond au projet que vous souhaitez mettre à jour.

Par exemple. J'ai un projet Db et un projet Web, assurez-vous que set projet de démarrage sur le projet Db, lorsqu'il est exécuté " Update-Database ", sinon, il tentera d'effectuer une recherche dans le projet Web.

0
Box Very