Utilisation du fournisseur MySQL ADO.NET dans MVC3 (impossible de trouver le fournisseur de données .NET Framework demandé. Il est possible qu’il ne soit pas installé.)

J’essaie de me connecter à une firebase database mysql sur mon serveur web, mais je continue à recevoir:

Unable to find the requested .Net Framework Data Provider. It may not be installed. 

Je devine que le connecteur ADO.NET est présent parce que si je change ma configuration en:

 providerName="System.Data.SQLClient" 

Je reçois:

 A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) 

La configuration de mon fournisseur est:

    

Ma chaîne de connexion est:

  

Je suis presque sûr que c’est correct, surtout si je le lance à partir de ma machine locale (en changeant l’hôte en IP du serveur), il fonctionne parfaitement! Quelqu’un pourrait-il s’il vous plaît confirmer qu’il s’agit d’une chaîne de connexion correcte.

Je vais répondre à ma propre question, car cela a gaspillé 3 jours de ma vie à essayer de le configurer manuellement.

Situation

  • Vous avez créé une application MVC3 / razor (éventuellement une autre application c #).
  • Vous utilisez MySql.Data.MySqlClient pour essayer de vous connecter à votre firebase database
  • Vous pouvez vous connecter depuis un IDE tel que VS2010 depuis votre ordinateur local à une firebase database locale ou à une firebase database sur votre serveur, mais vous ne pouvez pas vous connecter lorsque le site est déployé.
  • Lorsque vous déployez votre site Web, vous obtenez le message d’erreur suivant: Unable to find the requested .Net Framework Data Provider. It may not be installed. Unable to find the requested .Net Framework Data Provider. It may not be installed. Lorsque vous essayez de référencer la firebase database MySql

Le problème est que votre site ne peut pas trouver la référence à MySQL.Data.


Solution

Plusieurs sections doivent être modifiées dans votre fichier web.config , telles que dbproviderfactories et la création d’espaces de noms. Ceux-ci peuvent être ajoutés manuellement, mais il est beaucoup plus simple de permettre aux outils de le faire pour vous.

Vous devrez inclure les dll appropriées dans votre dossier bin ou, encore mieux, utilisez Visual Studio SP1 pour créer le dossier et les références appropriés en cliquant avec le bouton droit de la souris sur le projet ( il existe une option pour créer un dossier bin contenant toutes vos dll ). . Assurez-vous que MySql.Data.MySqlClient est contenu dans ce dossier. Si ce n’est pas le cas, vous devriez pouvoir le faire glisser de votre dossier bin vers le nouveau dossier créé par VS.

Vous pouvez ensuite utiliser la console du gestionnaire de paquets nuGet pour installer BLToolKit . Cela téléchargera les dll manquantes, les insérera dans vos dossiers et les référencera correctement automatiquement. De cette façon, vous pouvez déployer votre application MVC sur un serveur Web sur lequel MySql.Data (ou toute autre dll) ne sera peut-être pas installé.

Vous devez d’abord avoir ce installé

http://dev.mysql.com/downloads/connector/net/1.0.html

Et c’est un fournisseur différent

http://dev.mysql.com/downloads/connector/net/#downloads

Ajoutez ensuite votre source de données via Visual Studio et cela modifiera le fichier app.config pour vous.