Pourquoi le message "Impossible de trouver le fournisseur de données .Net Framework demandé" s'affiche-t-il lorsque j'essaie de configurer une nouvelle source de données dans Visual Studio 2010 Professional?
Mes stats:
J'ai démarré une application de test ASP.NET et lorsque j'essaie d'ajouter une nouvelle source de données, j'obtiens:
Impossible de trouver le fournisseur de données .Net Framework demandé. Il pourrait ne pas être installé.
J'ai installé .NET 4.
Lorsque je crée la connexion et que je clique sur "Tester la connexion", les tests réussissent. SQL Server Management Studio se connecte très bien et j'ai vérifié les informations d'identification sur tout.
J'ai vu des rapports de personnes ayant un nœud supplémentaire à terminaison automatique dans le fichier machine.config. Le supprimer a résolu leur problème. machine.config se trouve dans \Windows\Microsoft.net\Framework\vXXXX\Config
. Vous pouvez avoir une multitude de fichiers de configuration en fonction du nombre de versions du framework installées, y compris des variantes 32 et 64 bits.
<system.data>
<DbProviderFactories>
<add name="Odbc Data Provider" invariant="System.Data.Odbc" ... />
<add name="OleDb Data Provider" invariant="System.Data.OleDb" ... />
<add name="OracleClient Data Provider" invariant="System.Data ... />
<add name="SqlClient Data Provider" invariant="System.Data ... />
<add name="IBM DB2 for i .NET Provider" invariant="IBM.Data ... />
<add name="Microsoft SQL Server Compact Data Provider" ... />
</DbProviderFactories>
<DbProviderFactories/> //remove this one!
</system.data>
J'aime les autres suggestions mais je préfère ne pas mettre à jour le fichier machine.config pour une seule application. Je vous suggère de simplement l'ajouter au web.config/app.config. Voici ce dont j'avais besoin pour utiliser le MySql Connector/NET que j'ai "bin" déployé.
<system.data>
<DbProviderFactories >
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Dans mon cas, l'entrée du fournisseur de données pour MySQL était "simplement" manquante dans le fichier machine.config décrit ci-dessus (bien que j'aie correctement installé le connecteur MySQL)
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
N'oubliez pas de mettre la bonne version de votre MySQL sur l'entrée
Je pensais que mon problème était dû à mon machine.config selon les réponses que j'ai trouvées en ligne, mais le coupable s'est avéré être dans le web.config du projet qui nettoyait les DbProviderFactories.
<system.data>
<DbProviderFactories>
<clear />
...
</DbProviderFactories>
</system.data>
J'ai eu ce problème avec la version 6.7.4 et je l'ai résolu en installant la version 6.5.6.
Ma configuration est Win 2008 R2 SP1 Data Center Edition, SQL Server 2008 R2 avec Business Intelligence Development Studio (VS2008). Installation très basique.
Lorsque j'installais 6.7.4, je ne pouvais même pas voir le fournisseur MySQL comme un choix. Cependant, quand j'ai regardé dans le fichier machine.config, j'ai vu des références pour le fournisseur de rôles MySQL, etc., mais aucune entrée n'a été ajoutée dans le fichier.
Ça marche pour moi merci. J'ai eu ce problème lorsque j'ai installé .Net Framework 4.7.1, en quelque sorte DbProviderFactories
paramètres sous System.Data
dans la configuration de la machine a été effacé. Il a commencé à fonctionner après avoir ajouté les paramètres de configuration nécessaires, comme indiqué ci-dessous DataProviderFactories
<system.data>
<DbProviderFactories>
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
</system.data>