it-swarm.com.de

Wie löse ich die Ausnahme des Entity Framework-Anbieters?

Ich habe mein WCF-Projekt auf einem Server veröffentlicht. Ich habe auch eine MVC-Anwendung auf derselben Box veröffentlicht, die die WCF-Dienste in Anspruch nimmt. 

Beim Versuch, sich in meiner MVC-Anwendung anzumelden, wird ein WCF-Dienst verwendet. Diese Ausnahme wird jedoch im Browser angezeigt. 

Der Entity Framework-Anbietertyp 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer 'in der Anwendungskonfigurationsdatei .__ registriert. für den ADO.NET-Provider mit dem unveränderlichen Namen 'System.Data.SqlClient' konnte nicht geladen werden. Stellen Sie sicher, dass der von der Assembly qualifizierte Name .__ ist. verwendet und die Assembly für die laufende Anwendung verfügbar ist.

Dies ist eine Ausnahme für das Entity Framework. Da mein Projekt jedoch bereits auf EF in der Entwicklungsumgebung verweist, sollten die DLLs nach dem Bereitstellen des Serviceprojekts auch die EF-Referenz enthalten. Ich weiß jedoch nicht, warum ich diesen Fehler erhalte. 

Ich kann diese Nachricht sehen, weil ich den includeExceptionDetailInFaults="True" eingeschaltet habe. 

12
ife labolz

@FranciscoGoldenstein sagt! Sie müssen Entity Framework nicht in Ihrer Konsolenanwendung oder was auch immer installieren. Sie müssen lediglich einen Verweis auf die Assembly EntityFramework.SqlServer.dll hinzufügen. Sie können diese Assembly aus dem Class Library-Projekt, das Entity Framework verwendet, in einen LIB-Ordner kopieren und einen Verweis darauf hinzufügen. 

In Summe:

  • Klassenbibliothek Anwendung:
    • Installieren Sie Entity Framework 
    • Schreiben Sie Ihren Datenschichtcode 
    • die Datei app.config enthält alle Konfigurationen, die mit Entity Framework verbunden sind, mit Ausnahme der Verbindungszeichenfolge. 
  • Erstellen Sie eine Konsolen-, Web- oder Desktopanwendung:
    • Fügen Sie einen Verweis auf das erste Projekt hinzu. 
    • Fügen Sie einen Verweis auf EntityFramework.SqlServer.dll hinzu. 
    • app.config/web.config enthält die Verbindungszeichenfolge (Denken Sie daran, dass der Name des Konfigurationseintrags mit dem Namen der DbContext-Klasse identisch sein muss). 

es ist Arbeit für mich! Ich hoffe, es hilft.

versuchen Sie auch diesen Link Entity Framework Provider-Typ konnte nicht geladen werden?

15
Nazmul Hasan

Entity Framework nuget deinstallieren und einfach neu installieren, hat für mich funktioniert.

3
Moji

Der einfachste Trick, um dieses Problem zu beheben, besteht darin, die folgende Zeile in eine der Klassen in Ihrem EF-Projekt einzufügen:

public class Blablabla
{
    private static string __hack = typeof(SqlProviderServices).ToString();

    // other class members as they were before.
}

Dadurch wird erzwungen, dass der Erstellungsprozess EntityFramework.SqlServer.dll in den Ordner \bin eines Projekts kopiert, das Referenzen auf das EF-Projekt enthält.

Sie müssen das EF nuget-Paket nicht installieren oder einen expliziten Verweis auf EntityFramework.SqlServer.dll in einem Downstream-Projekt erstellen. 

2
Tohid

Ich hatte auch ein ähnliches Problem

Mein Problem wurde folgendermaßen gelöst:

 enter image description here

 enter image description here

1
BehrouzMoslem

Löschen Sie den Ordner "Bin" und bereinigen Sie Ihre Lösung, bzw. baue sie neu auf, wie ich in meine Antwort auf eine ähnliche Frage vorgeschlagen habe.

0
Ulysses Alves