55 Stimmen

ASP.NET MVC 3 - Es konnte der angeforderte .Net Framework-Datenanbieter nicht gefunden werden.

Hintergrundinformationen:

Ich benutze Microsoft Visual Web Developer 2010 Express.
Informationen über meine (fehlende) Erfahrung: Das Problem ist im ersten Tutorial aufgetreten, das ich versuche durchzuarbeiten.

Zusätzliche Informationen:

  • Ich bin vertraut mit C#, Postgres, Rails (also MVC & Web-Apps sind mir nicht unbekannt)
  • Ich habe keine Erfahrung mit ASP.NET oder SQL Server

Problem Beschreibung:

Ich versuche genau den Schritten aus dem "Einführung in ASP.NET MVC 3"-Tutorial zu folgen und stoße auf ein Problem bei dem ersten Schritt von Teil 5 - Hinzufügen des MoviesControllers:

Wenn ich versuche, den "MoviesController" mit den exakten Einstellungen hinzuzufügen, die im Tutorial gezeigt werden, und auf 'Hinzufügen' klicke, erhalte ich den folgenden Fehler:

"Metadaten für MvcMovie.Models.Movie konnten nicht abgerufen werden. Der angeforderte .NET Framework-Datenanbieter konnte nicht gefunden werden. Er ist möglicherweise nicht installiert."

Google hat viele Ergebnisse geliefert, als nach dem Satz "Der angeforderte .NET Framework-Datenanbieter konnte nicht gefunden werden" gesucht wurde, aber bisher hat nichts das Problem gelöst.

Was ich versucht habe:

Ich glaube, dass SQL-Server nicht installiert war, also habe ich es aus der Visual Studio Express ISO installiert, bekam einen Fehler, dann habe ich einen Reparaturlauf von der ISO ausgeführt und es wurde behauptet, dass alle 15 Punkte einschließlich der Reparatur von SQL Server Express & .NET 4 Framework erfolgreich durchgeführt wurden.

Ich habe das The_.NET_Framework_Setup_Verification_Tool ausgeführt, das für alles erfolgreich war. http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx

Nach der erwähnten Neuinstallation & Reparatur habe ich das Projekt neu erstellt und jeden Schritt wie im Tutorial beschrieben befolgt und den gleichen Fehler erhalten.

Ich fand heraus, dass ich nach DbProviderFactories in der machine.config suchen sollte,

Die Root-Web.config des Projekts enthält die folgenden Einträge

Meine machine config-Datei hat nur einen DbProviderFactories-Eintrag:

dann fand ich das Folgende Zitat

"Wir haben die Art und Weise geändert, wie DbProviderFactories.GetFactoryClasses() die Framework-Anbieter in VS2010 bestimmt. Sie sind nicht mehr in der machine.config-Datei aufgeführt. "

von http://social.msdn.microsoft.com/Forums/en-ZA/adodotnetdataproviders/thread/d79129c4-ae05-4c45-8997-bd90f5765a3a

Frage:

Vielleicht ist das also die falsche Richtung und da ich keine Ahnung habe, was ich als nächstes versuchen soll, welche Schritte sollte ich unternehmen, um dieses Problem zu untersuchen & zu lösen?
Übrigens, ich habe postgres installiert, also wenn es eine einfache Lösung wäre, postgres anstelle von SQL-Server zu verwenden, lassen Sie es mich wissen. Für meine eigenen Projekte würde ich sowieso eine andere Datenbank (wahrscheinlich postgres) verwenden wollen, aber vorerst möchte ich in der Lage sein, das erste und scheinbar einfache Tutorial, das ich ausprobiert habe, erfolgreich abzuschließen.

8 Stimmen

Wenn nur jeder seine Fragen so definiert hätte +1

1 Stimmen

Danke, ich schätze den Kommentar.

0 Stimmen

Ich hatte genau das gleiche Problem, das Gleiche zu tun. Danke.

56voto

fattyman Punkte 610

Ich hatte das gleiche Problem, also habe ich es ersetzt

mit dem Folgenden

Und es hat genug funktioniert, um mir zu erlauben, weiter zu arbeiten. Ich werde auch irgendwann lernen, wie man diese Art von Anwendungen mit MySQL zum Laufen bringt, aber für jetzt sollte es zumindest helfen, dass du mit dem Tutorial weitermachen kannst.

7 Stimmen

Dies ist nicht der richtige Weg, um das Problem zu lösen. Dies ist eine Art von Pitch-Up-Arbeit. Richtiger Weg, um Microsoft SQL Server Compact 4.0 zu installieren.

4 Stimmen

Die Lösung von Fattyman funktioniert. @Saroop Trivedi Ich habe bereits SQL Server Compact 4.0 installiert und erhalte trotzdem den oben genannten Fehler.

0 Stimmen

Ich konnte es schließlich zum Laufen bringen, indem ich die originale Verbindungszeichenfolge verwendet habe, aber eine Referenz auf "System.Data.SqlServerCe" (Version 4.0, nicht 3.5) hinzugefügt habe.

42voto

saille Punkte 8687

Sie müssen Microsoft SQL Server Compact 4.0 installieren.

1 Stimmen

Dies hat bei mir nicht funktioniert, ich habe bereits Sql Server CE 4.0 installiert

7voto

blowdart Punkte 53842

Wenn Sie sich die Konfiguration ansehen, werden Sie feststellen, dass die Installation von SQL Server eine falsche Fährte war;

SqlServerCE ist leider nicht der volle SQL Server, sondern SQL Server Compact Edition. Ich hätte gedacht, dass dies mit VS Express installiert worden wäre, aber Sie können die spezifischen Installer von hier herunterladen.

Ich hatte tatsächlich sowohl SQLServerCE als auch Express installiert, aber im Tutorial wurde Compact Edition verwendet: Ein Schritt innerhalb von Teil 4 des Tutorials besteht darin, den von Ihnen zitierten Teil ausdrücklich in die Web.config hinzuzufügen. Dies ist also beabsichtigt ein Teil der web.config.

Aber das Löschen dieses Teils aus der web.config ermöglicht es, den Controller so hinzuzufügen, wie es im Tutorial beschrieben wird. Obwohl dies bedeutet, dass das Tutorial nicht mehr genau befolgt wird, ist das für mich in Ordnung. (Dies führt zur Erstellung einer MvcMovie.Models.MovieDBContext-Datenbank in SQL Server Express.)

1voto

vasu Punkte 11

Ich habe meinen SQL providerName="System.Data.SqlClient" in der web.config geändert, da ich sowohl den SQL-Client als auch SQL Compact auf meinem System installiert habe.

1voto

Alexis Punkte 11

http://forums.asp.net/t/1679349.aspx/1 CypressBender

Re: Nicht in der Lage, Metadaten abzurufen für * Nicht in der Lage den angeforderten .Net Framework Data Provider zu finden.... 08. August 2011 19:44 Uhr|LINK

Ich habe Microsoft SQL Server Compact 4.0 installiert, und das hat das Problem für mich behoben. http://www.microsoft.com/download/en/details.aspx?id=17876

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X