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.
@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:
es ist Arbeit für mich! Ich hoffe, es hilft.
versuchen Sie auch diesen Link Entity Framework Provider-Typ konnte nicht geladen werden?
Entity Framework nuget deinstallieren und einfach neu installieren, hat für mich funktioniert.
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.
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.