“Impossible de trouver le demande .Net Framework Fournisseur De Données. Il ne peut pas être installé.”
Je sais qu'il y a eu beaucoup d'autres publications sur cette erreur, mais aucun n'a été en mesure de faire toute la lumière ou de l'aide sur mon problème. Je suis l'aide d'une droite de connexion pour SqlExpress, de sorte qu'aucune Oracle ou MySQL bases de données ou de quoi que ce soit. Il semble que ce devrait juste ajustement comme un gant.
Si le scénario est cela, j'ai créé une solution, composé d'une poignée de projets; Référentiels de Données (EF5.0), les services publics, un projet de Test et une Application Web MVC. L'objectif est de simplement accéder à un sous-jacente de base de données SQL Express via les classes de Données via des dépôts dans le projet des Dépôts à l'aide de EF5 et certains dépôts dans le projet de test et l'Application MVC.
Le projet de test fonctionne et est en mesure d'accéder et de mettre à jour la base de données sans problème.
Le Projet Web MVC, cependant, est de lancer le "Impossible de trouver le demande .Net Framework Fournisseur De Données. Il ne peut pas être installé." erreur, que je ne comprends pas, car il utilise la même chaîne de connexion que le Projet de Test.
[ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.]
System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1426271
WebMatrix.Data.DbProviderFactoryWrapper.CreateConnection(String connectionString) +64
WebMatrix.Data.<>c__DisplayClass15.<OpenConnectionStringInternal>b__14() +16
WebMatrix.Data.Database.get_Connection() +19
WebMatrix.Data.Database.EnsureConnectionOpen() +12
WebMatrix.Data.Database.QueryValue(String commandText, Object[] args) +63
WebMatrix.WebData.DatabaseWrapper.QueryValue(String commandText, Object[] parameters) +14
WebMatrix.WebData.SimpleMembershipProvider.GetUserId(IDatabase db, String userTableName, String userNameColumn, String userIdColumn, String userName) +232
WebMatrix.WebData.SimpleMembershipProvider.ValidateUserTable() +85
J'ai ...
- Enregistré, le Système.Les données.SqlClient dans le web.config.
- Vérifié que la version enregistrée (2.0.0.0) du Système.Il existe des données dans le GAC par cet article
- Fait en sorte qu'il n'y avait pas de fautes de frappe dans la Chaîne de Connexion.
Voici ce que j'ai dans le web.config ...
<connectionStrings>
<add name="DBCatalogContext"
connectionString="metadata=res://*/DBCatalog.csdl|
res://*/DBCatalog.ssdl|
res://*/DBCatalog.msl;
provider=System.Data.SqlClient;
provider connection string="data source=.\SQLEXPRESS;
initial catalog=DBCatalog;
integrated security=True;
multipleactiveresultsets=True;
App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
<system.data>
<DbProviderFactories>
<add name="SqlClient Data Provider"
invariant="System.Data.SqlClient"
description=".Net Framework Data Provider for SqlServer"
type="System.Data.SqlClient.SqlClientFactory,
System.Data,
Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</DbProviderFactories>
</system.data>
La seule chose que je vois qui ne fait pas de sens pour moi, lorsque je sélectionne le "Système."Données de référence dans les "Références" du dossier et de regarder les propriétés qu'il dit que c'est la version 4.0.0.0, mais quand j'ai changer la version dans le "DbProviderFactories" section de la configuration du site, je reçois toujours le message d'erreur. Aussi je ne voit même pas la référence à cette bibliothèque dans le projet de Test qui fonctionne.
Je suis convaincu que c'est un oubli ou que je suis absent de certains paramètre de configuration, mais je ne sais pas où d'autre à regarder ce point, de sorte que toute aide serait appréciée.
Grâce,
G
OriginalL'auteur Gary O. Stenstrom | 2013-01-22
Vous devez vous connecter pour publier un commentaire.
Je n'avais apparemment laissé de côté certains en fin de compte de l'information pertinente quand j'ai posté. Cela inclus le fait que l'erreur a été d'être jeté par les membres des services, plus particulièrement la ... SimpleMembershipInitializer ... à l'origine de cette classe spécifiée, la chaîne de connexion ... "DefaultConnection" définie dans le web.config, pour être utilisé lors de l'initialisation de la connexion de base de données.
J'avais changé d'utiliser le "DBCatalogContext" chaîne de connexion que j'avais ajouté pour le web.config, en pensant que j'allais utiliser cette chaîne de connexion à la place. Le problème, bien sûr, c'est que la nouvelle chaîne de connexion que j'ai ajouté est une Entité Cadre de la chaîne de connexion qui les services aux membres de ne pas reconnaître résultant dans le fournisseur de données d'erreur.
J'ai simplement ajouté en arrière à l'original, régulier de la chaîne de connexion, en plus de l'Entité Cadre de la chaîne de connexion et maintenant tout fonctionne. Eh bien tout ce qui a trait à ce question ...
J'espère que quelqu'un d'autre peut trouver cela utile.
OriginalL'auteur Gary O. Stenstrom
J'ai eu exactement les mêmes problèmes.
Je suis en train de faire le suivant:
J'ai étendu la
UserProfile
modèle à avoir une nouvelle propriété,Email
.Je même si je dois aussi ajouter le
Email
colonne à cet appel:Cela n'a jamais fonctionné, j'ai toujours "... Fournisseur n'est pas trouvé." J'ai tout essayé avec pas de chance.
Je s'avère que EF est assez intelligent et crée automatiquement les
Email
colonne alors j'ai enlevé les extraEmail
paramètre deWebSecurity.InitializeDatabaseConnection
et tout fonctionne bien maintenant.PS: je suis en utilisant le même EF chaîne de connexion pour se connecter à ma DB.
OriginalL'auteur GETah