55 votes

ASP.NET MVC 3 - Impossible de trouver de la demande .Net Framework Fournisseur De Données

Arrière-plan-info:

Je suis l'aide de Microsoft Visual Web Developer 2010 Express.
Info à propos de mon absence d'expérience: le problème s'est produit dans le premier tuto que je suis en train de travailler à travers.

Quelques autres-info:

  • Je suis à l'aise avec le C#, Postgres, des Rails (donc MVC et Web-apps ne sont pas nouveaux pour moi)
  • J'ai pas d' expérience avec ASP.NET ou SQL Server

Description Du Problème:

Je suis en train de suivre exactement la procédure à partir de l' "l'introduction à la ASP.NET MVC 3"-tutoriel et je suis confronté à un problème lors de la première étape de la partie 5 - Ajout de la MoviesController:

Quand j'essaie d'ajouter de la "MoviesController" avec les paramètres exacts qui sont montré dans le tutoriel et cliquez sur "Ajouter" j'obtiens l'erreur suivante:

"Impossible de récupérer les métadonnées pour MvcMovie.Modèles.Film. Incapable de trouver la demande .Net Framework De Données Fournisseur de. Il ne peut pas être installé."

Google a donné une tonne de résultats lors de la recherche de l'expression "Impossible de trouver le demande .Net Framework Fournisseur de Données", mais rien n'a résolu le problème jusqu'à présent.

Ce que j'ai essayé:

Je pense que SQL Server n'est pas installé, donc je l'ai installé à partir de Visual Studio Express ISO - eu une erreur alors j'ai exécuter une réparation à partir de l'ISO et il a affirmé que tous les 15 points, y compris SQL Server Express et de réparation.NET 4 Cadre a traversé avec succès.

J'ai couru l'The_.NET_Framework_Setup_Verification_tool qui a succédé à tout pour le tout. http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx

Au delà de cette (ré-)installation et la réparation j'ai recréé le Projet et suivi à chaque étape, comme décrit dans le tutoriel et obtenu la même erreur.

J'ai trouvé que je devrais regarder pour DbProviderFactories dans la machine.config,

La racine Web.config du Projet comporte les entrées suivantes

  <connectionStrings>
    <add name="MovieDBContext"
     connectionString="Data Source=|DataDirectory|Movies.sdf"
     providerName="System.Data.SqlServerCe.4.0"/>

Ma machine config-file n'a qu'un seul DbProviderFactories entrée:

<DbProviderFactories>
<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>

ensuite, j'ai trouvé la citation suivante

"nous avons changé la façon dont les DbProviderFactories.GetFactoryClasses() détermine le cadre de fournisseurs VS2010. Ils ne sont plus répertoriées dans la machine.fichier de configuration. "

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

Question:

Donc, c'est peut-être la mauvaise direction et depuis je n'ai aucune idée de ce à essayer ensuite, quelles mesures dois-je prendre pour enquêter et résoudre ce problème?
Btw. J'ai installé postgres, donc si à l'aide de postgres au lieu de SQL-server serait une solution facile, faites le moi savoir. Pour mes propres projets, je voudrais utiliser une autre DB de toute façon (probablement postgres), mais pour l'instant je veux juste être en mesure d'obtenir avec succès à travers le premier et apparemment simple tutoriel, je l'ai essayé.

56voto

fattyman Points 555

J'ai eu le même problème donc je l'ai remplacé

<add name="MovieDBContext"     connectionString="Data Source=|DataDirectory|Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>

avec les éléments suivants

<add name="MovieDBContext"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;database=Movies;User ID=sa;password="
     providerName="System.Data.SqlClient"/>

Et cela a fonctionné assez de me laisser continuer à travailler. Moi aussi j'aurais également fini par apprendre à faire ces sortes d'applications fonctionne avec mysql à un certain point, mais pour l'instant, cela devrait au moins vous aider à continuer avec le tutoriel.

42voto

saille Points 3585

Vous devez installer Microsoft SQL Server Compact 4.0.

7voto

blowdart Points 28735

Si vous regardez la configuration, vous verrez que l'installation de SQL Server a été un hareng rouge;

<add name="MovieDBContext"
 connectionString="Data Source=|DataDirectory|Movies.sdf"
 providerName="System.Data.SqlServerCe.4.0"/>

SqlServerCE n'est pas, je le crains, complète de SQL Server, SQL Server Compact Edition. J'aurais pensé que cela aurait été installé avec VS Express, cependant, vous pouvez télécharger des installateurs d' ici

En fait j'ai eu les deux SQLServerCE et Express est installé, mais le tutoriel utilisé Compact Edition: Une étape dans la partie 4 de ce tutoriel est d'ajouter explicitement la partie que vous avez cité sur le Web.config. Donc, c'est une partie du web.config par l'intention.

Mais la suppression de cette partie du web.config permet d'ajouter le Contrôleur dans la façon dont le tutoriel décrit. Tout cela signifie plus exactement suivant le tutoriel, c'est très bien pour moi. (Il en résulte la création d'un MvcMovie.Modèles.MovieDBContext base de données dans SQL Server Express.)

1voto

Aaron Lee Points 21

La reconstruction du projet coutume de catch config erreurs dans le DBContext de l'article... le processus de compilation ne marche pas par le biais de connexions, de sorte que vous pouvez construire tous les jours et encore de la bombe. Comme suggéré ci-dessus, fixer la config que la chaîne de connexion correspond Nom_machine/SQLInstanceName/DBName avec la bonne config SQL. A très bien fonctionné par une simple modification de mon site web.config dans ma solution.

1voto

Alexis Points 11

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

Re: Impossible de récupérer les métadonnées * Impossible de trouver le demande .Net Framework Fournisseur De Données.... Août 08, 2011 07:44|LIEN

J'ai installé Microsoft SQL Server Compact 4.0, et qui a résolu le problème pour moi. http://www.microsoft.com/download/en/details.aspx?id=17876

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X