2016-05-06 25 views
-1

Wir richten gerade einen neuen PCI-konformer Server, und wenn ich es für meine asp.net app bereitstellen erhalte ich diese Meldung Fehler:ASP.NET app mit EF 6.1.3 in IIS 7

Der ADO.NET-Provider mit Invarianter Name 'System.Data.SqlClient' ist entweder nicht in der Computer- oder Anwendungskonfigurationsdatei registriert oder konnte nicht geladen werden. Weitere Informationen finden Sie in der inneren Ausnahme.

Ich habe meine Konfigurationsdatei doppelt überprüft, EF deinstalliert und in allen Projekten neu installiert. Ich sehe die DLL im Ordner bin nach der Bereitstellung (wir verwenden CI mit Team City und Octopus). Ich habe fast alle Post online nach Lösungen für keinen Erfolg überprüft.

Wenn ich diese Anwendung auf einem nicht PCI-konformen Server bereitstellen, funktioniert es gut. Ich habe keine Ideen zu was kann das verursachen !!

web.config

<configSections> 
 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/> 
 
    </configSections> 
 

 
<!-- Connection String --> 
 
<add name="BondedBuilderModel" connectionString="data source=SqlServer;initial catalog=mydb;integrated security=false;User Id=user; Password =pass;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient"/> 
 
     
 

 
<!-- Provider --> 
 
    <entityFramework> 
 
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
 
      <parameters> 
 
       <parameter value="System.Data.SqlClient"/> 
 
      </parameters> 
 
     </defaultConnectionFactory> 
 
     <providers> 
 
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/> 
 
     </providers> 
 
    </entityFramework>

** Ausnahme **

The ADO.NET provider with invariant name 'System.Data.SqlClient' is either not registered in the machine or application config file, or could not be loaded. See the inner exception for details. 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver.<GetService>b__0(ArgumentException e, String n) 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver.GetService(Type type, Object key, Func`3 handleFailedLookup) 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver.GetService(Type type, Object key) 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.CachingDependencyResolver.<>c__DisplayClass1.<GetService>b__0(Tuple`2 k) 
 
    at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.CachingDependencyResolver.GetService(Type type, Object key) 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.<>c__DisplayClass3.<GetService>b__0(IDbDependencyResolver r) 
 
    at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext() 
 
    at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate) 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.GetService(Type type, Object key) 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.RootDependencyResolver.GetService(Type type, Object key) 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.<>c__DisplayClass3.<GetService>b__0(IDbDependencyResolver r) 
 
    at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext() 
 
    at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate) 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.GetService(Type type, Object key) 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.CompositeResolver`2.GetService(Type type, Object key) 
 
    at System.Data.Entity.Infrastructure.DependencyResolution.DbDependencyResolverExtensions.GetService[T](IDbDependencyResolver resolver, Object key) 
 
    at System.Data.Entity.Internal.LazyInternalConnection.CreateConnectionFromProviderName(String providerInvariantName) 
 
    at System.Data.Entity.Internal.LazyInternalConnection.InitializeFromConnectionStringSetting(ConnectionStringSettings appConfigConnection) 
 
    at System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name, AppConfig config) 
 
    at System.Data.Entity.Internal.LazyInternalConnection.Initialize() 
 
    at System.Data.Entity.Internal.LazyInternalConnection.get_ProviderName() 
 
    at System.Data.Entity.Internal.LazyInternalContext.get_ProviderName() 
 
    at System.Data.Entity.Internal.DefaultModelCacheKeyFactory.Create(DbContext context) 
 
    at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() 
 
    at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) 
 
    at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() 
 
    at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext() 
 
    at System.Data.Entity.Internal.Linq.InternalSet`1.ActOnSet(Action action, EntityState newState, Object entity, String methodName) 
 
    at System.Data.Entity.Internal.Linq.InternalSet`1.Add(Object entity) 
 
    at System.Data.Entity.DbSet`1.Add(TEntity entity) 
 
    at BondedBuilders.Data.LoggerData.LogError(String errorType, String errorMessage, String stackTrace) in c:\TeamCity\buildAgent\work\f206d6cc22a03ea8\source\web\BondedBuilders.Data\LoggerData.cs:line 31 
 
    at BondedBuilders.Data.LoggerData.LogError(Exception exception) in c:\TeamCity\buildAgent\work\f206d6cc22a03ea8\source\web\BondedBuilders.Data\LoggerData.cs:line 11 
 
    at BondedBuilders.WebClient.Templates.Main.HandleSystemError(Exception ex) in c:\TeamCity\buildAgent\work\f206d6cc22a03ea8\source\web\BondedBuilders.WebClient\Templates\Main.Master.cs:line 18 
 
    at BondedBuilders.WebClient.Default.ButtonContinue_Click(Object sender, EventArgs e) in c:\TeamCity\buildAgent\work\f206d6cc22a03ea8\source\web\BondedBuilders.WebClient\Default.aspx.cs:line 95 
 
    at System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e) 
 
    at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) 
 
    at System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) 
 
    at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) 
 
    at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) 
 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

+0

"Siehe die innere Ausnahme für Details." Was sagt die innere Ausnahme? –

+0

Mögliches Duplikat von [Entity Framework ADO.NET Sql.Data.Client-Provider nicht gefunden] (http://stackoverflow.com/questions/20111583/entity-framework-ado-net-sql-data-client-provider-not- gefunden) –

+0

Ich habe alle Vorschläge auf diesem Post versucht und nichts hat funktioniert. Wie Sie aus den Kommentaren entnehmen können, wurde das Problem auch nicht gelöst. – mghz

Antwort

2

Für jeden, der dies durchläuft, hat es endlich herausgefunden.
In der Datei machine.config:

32-Bit

%windir%\Microsoft.NET\Framework\[version]\config\machine.config 

64-Bit

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 

war es ein dbproviders Abschnitt definiert, aber gleich danach gab es eine andere eine wie diese definiert <DbProviderFactories/>

Sobald dieser zweite gelöscht wurde, funktionierte die App und der obige Fehler wurde nicht mehr angezeigt.
Die Frage bleibt, warum die Maschinenkonfiguration beide Abschnitte definiert haben würde. Niemand hat diese Datei manuell bearbeitet !!

+0

Gut zu finden! Ich hatte eine Ahnung, dass das Problem in der machine.config war, weshalb ich in meinen Kommentaren so darauf fixiert war und warum ich den Vergleich empfahl. Freut mich, dass du es gefunden hast. – Arman