2010-02-04 3 views
16

J'apprends à travailler avec le fournisseur intégré de profil .Net, et ont le problème suivant:Remplacer machine.config par web.config

je lis que les machine.config-paramètres peuvent être remplacés par les paramètres web.config d'une application .Net. Les paramètres suivants dans le machine.config fichier sont pertinentes pour moi:

<connectionStrings> 
<add name="LocalSqlServer" connectionString="Data Source=(local);Initial Catalog=aspnetdb; 
Integrated Security=True" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

<profile><providers><add name="AspNetSqlProfileProvider"connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/></providers></profile> 

Ces travaux de paramètres pour configurer des profils locaux. Cependant, lorsque je copie les paramètres dans le fichier web.config de mon application et change les paramètres machine.config , afin qu'ils ne fonctionnent plus, j'obtiens une erreur de configuration . Par exemple, je change le nom du fournisseur dans le fichier machine.config en "Local". Cela ne devrait pas poser de problème, car les paramètres sont remplacés. Cependant, lors de l'exécution l'application que je reçois l'erreur.

« L'entrée « AspNetSQLProvider a déjà été ajouté »(ma traduction)

Répondre

34

Ajouter un élément <clear /> comme le premier enfant de <connectionStrings> Il va causer la système de configuration pour ignorer toutes les chaînes de connexion ajoutés dans machine.config et utiliser les nouvelles fournies. vous pouvez également utiliser l'élément <remove> pour supprimer un seul élément de configuration si vous ne voulez pas effacer tout ça.

<connectionStrings> 
    <clear /> 
    <add name="LocalSqlServer" connectionString="Data Source=(local);Initial Catalog=aspnetdb;Integrated Security=True" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

le même idée ap Il est également conforme aux sections <providers>.

+1

Merci beaucoup, ça y est. – AGuyCalledGerald

+0

Cela fonctionne également dans DbProviderFactories –

+0

Cela me met en colère, mais il semble avoir résolu le problème. Sérieusement MS sérieusement ... – Shawn