Der Provider für den invarianten Namen System.Data.SqlClient ist mehrfach angegeben

8

Ich habe Entity Framework auf 6.0 aktualisiert und jetzt bekomme ich eine Ausnahme, die ich nicht herausfinden kann.

  

Beim Erstellen des Konfigurationsabschnittshandlers für entityFramework ist ein Fehler aufgetreten: Der Provider für den invarianten Namen 'System.Data.SqlClient' wurde in der Anwendungskonfiguration mehrfach angegeben. Der invariante Name muss für jeden konfigurierten Provider eindeutig sein. (C: \ inetpub \ wwwroot \ scrape \ Scrape \ web.config Zeile 106)

     

Der Typinitialisierer für 'System.Data.Entity.Internal.AppConfig' hat eine Ausnahme ausgelöst.

Die web.config hat den Provider nicht mehrfach aufgelistet und ich habe nur eine web.config für das gesamte Projekt. Ich bin dankbar für jede Hilfe.

Stapelverfolgung

  

bei System.Data.Entity.Internal.AppConfig.get_DefaultInstance ()

     

bei System.Data.Entity.Internal.LazyInternalConnection..ctor (String nameOrConnectionString)

     

bei System.Data.Entity.DbContext..ctor (String nameOrConnectionString)

     

bei Scrape.Data.Contexts.ScabsContext..ctor () in c: \ inetpub \ wwwroot \ scrape \ Scrape.Data \ Contexts \ ScabsContext.cs: Zeile 17

     

bei Scrape.Data.Repositories.ScabStore..ctor () in c: \ inetpub \ wwwroot \ scrape \ Scrape.Data \ Repositories \ ScabStore.cs: Zeile 15

     

bei Scrape.Api.Controllers.ScabsController.get_store () in c: \ inetpub \ wwwroot \ scrape \ Scrape \ Controller \ ScabsController.cs: Zeile 28

     

bei Scrape.Api.Controllers.ScabsController.Post (Scab scab) in c: \ inetpub \ wwwroot \ scrape \ Scrape \ Controller \ ScabsController.cs: Zeile 52

     

bei lambda_method (Closure, Object, Object [])

     

bei System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor. & lt; & gt; c_ DisplayClassc.b _6 (Objektinstanz, Object [] methodParameters)

     

bei System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute (Objektinstanz, Object [] Argumente)

     

unter System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync (HttpControllerContext controllerContext, IDictionary'2 Argumente, CancellationToken cancellationToken)

Und meine web.config

%Vor%     
bflemi3 20.12.2013, 15:26
quelle

4 Antworten

20

Das Problem ist, dass der Abschnitt configuration/entityFramework/providers einen doppelten Provider für die in der Ausnahme angegebene Invariante hat.

%Vor%

Auch wenn Sie nur einen angegeben haben, wird wahrscheinlich in einer .config-Datei in einem übergeordneten Verzeichnis einer angegeben. Da .config-Dateien die Konfiguration von den Eltern erben, sehen sie, dass sie doppelt definiert sind.

Sie können diesen Anbieter wahrscheinlich sicher für diese Anwendung entfernen.

Basierend auf dem CodePlex-Projekt wurde dies in 6.1.0-alpha1 behoben, indem exakte Duplikate ignoriert wurden.

    
vcsjones 20.12.2013, 15:36
quelle
3

Versuchen Sie, den Provider-Abschnitt auskommentieren, speichern und erneut ausführen. Es hängt vielleicht mit diesem Initiator des Typs zusammen für 'System.Data.Entity.Internal.AppConfig' hat eine Ausnahme auf einer Unterwebsite ausgelöst

    
Phil 20.12.2013 15:34
quelle
0

Ich habe diesen Fehler erhalten, weil die Datei "EntityFramework.SqlServer.dll" nicht in der Veröffentlichung für dieses Projekt enthalten war. Durch das Hinzufügen dieser DLL zum Webserver-Bin-Ordner wurde das Problem behoben.

    
TheTall 13.10.2017 21:13
quelle
0

Um das zu beheben, habe ich den übergeordneten Ordner web.config entityFramework section mit:

umschlossen
  

<location path="." inheritInChildApplications="false">

     
    

<entityFramework>

         
      

...

    
         

<entityFramework>

  
     

</location>

Siehe Ссылка

    
Josh 07.02.2018 20:35
quelle

Tags und Links