84 votes

L'entrée '' a déjà été ajoutée erreur

J'ai un web.config en ASP.net qui me donne une erreur de configuration.

 <connectionStrings>   
<add name="conn1" connectionString="Data Source=test;database=test;uid=test;pwd=test"/>
<add name="conn2" connectionString="Data Source=123.123.1.123;database=test2;uid=test;pwd=test"/>
...

L'erreur "L'entrée 'conn2' a déjà été ajoutée" apparaît. Je sais que je ne l'ai ajoutée qu'une fois. Je ne suis pas sûr de l'origine de l'erreur.

0 votes

Il devrait y avoir un numéro de ligne qui est craché avec l'erreur. Avez-vous vérifié qu'il correspond à l'extrait que vous avez ci-dessus ? Êtes-vous sûr de ne pas avoir un autre paramètre nommé "conn2" ?

0 votes

Je suppose que vous utilisez une base de données ? MSSQL, mongoDB, quelque chose d'autre ? Avez-vous défini un champ unique pour les champs uid ou pwd dans la base de données ? Cela créerait une entrée en double pour ce champ et, selon la base de données utilisée (chacune a sa propre terminologie d'erreur), pourrait produire cette erreur. J'espère que cela vous aidera

1 votes

Vérifie toi web.config vous devez avoir défini conn2 ailleurs ; sinon, il n'y aura pas d'erreur. Je viens de tester l'ajout de ces chaînes de connexion à mon fichier web.config de test et il n'y a pas eu d'erreur.

178voto

CzechDeveloper Points 1256

Cela peut être dans le web.config qui est parent de celui-ci. ajoutez simplement

<remove name="conn2" />

avant de l'ajouter (encore) :)

alternativement, effacer toutes les chaînes de connexion en utilisant

<clear />

1 votes

Incroyable - j'ai sauvé ma journée - mon projet a commencé à cracher des erreurs après avoir ajouté un profil de publication et publié.

2 votes

Dans mon cas, j'ai un fichier web.config associé au dossier où se trouve mon application ASP.NET, mais j'ai créé un projet Visual Studio sur son dossier parent. Lors de l'ouverture du fichier DBML Linq, il a porté la chaîne de connexion (qui était définie sur le fichier web.config enfant) vers le web.config du dossier racine, provoquant ainsi un doublon. Merci d'avoir signalé ce problème.

0 votes

Ok, voici donc la solution/le remède. Mais pourquoi cela se produit-il par intermittence ?

18voto

Gage Points 4070

Vous devez utiliser <clear /> lorsque vous ajoutez des fournisseurs à votre web.config. Lisez cet article : http://weblogs.asp.net/scottgu/archive/2006/11/20/common-gotcha-don-t-forget-to-clear-when-adding-providers.aspx

La cause profonde du problème ci-dessus réside dans la façon dont le nouveau fournisseur a été enregistré dans le fichier web.config.

La section dans le fichier web.config est implémentée comme une collection de collection, et il est donc possible d'enregistrer plusieurs fournisseurs en même temps

Si vous avez un autre projet utilisant le même nom de chaîne de connexion, vous recevrez cette erreur car cette chaîne de connexion a déjà été ajoutée à la collection.

1 votes

La question porte sur les chaînes de connexion, pas sur les fournisseurs, donc l'information que vous indiquez est hors sujet. Fournisseurs utiliser les chaînes de connexion mais ne sont pas la même chose

4voto

user1152145 Points 245

J'ai obtenu cette erreur et le problème s'est avéré être un web.config déployé à la racine du domaine.

2voto

lifeofmle Points 147

Si vous remplacez la méthode ToString(), cela fonctionnera. Il semble que le mécanisme de configuration utilise cette méthode pour vérifier si un élément existe déjà dans la collection.

1 votes

En fait, cela dépend de l'implémentation de protected override object GetElementKey(ConfigurationElement element) dans l'élément de configuration. Mais votre réponse m'a guidé dans la bonne direction donc +1

0 votes

Pour être clair, GetElementKey porte sur l'élément de collection, et non sur l'élément de configuration.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X