Je travaille à faire fonctionner mon projet ASP.Net sur Linux. J'ai testé mon code en utilisant XSP sur Windows, mais maintenant j'essaie de m'assurer que je peux aussi développer et tester sur Linux. À cette fin, j'ai lancé Ubuntu et j'ai exécuté MonoDevelop et MySQL. J'ai téléchargé le dernier MySQL Connector/Net et je pense que je l'ai installé correctement.Le serveur web XSP de Mono ne trouve pas MySql.Web.dll sous Linux
Il n'y a pas de paquetage qui installe automatiquement MySQL Connector/Net pour la distribution, j'ai donc téléchargé le fichier zip 6.2.3 depuis le site MySQL. Maintenant, j'ai déjà découvert le problème avec la sensibilité à la casse, car le fichier zip contient des noms de fichiers en minuscules, et Mono les attend en majuscules. J'ai donc changé les noms des fichiers en MySql.Data.dll, et MySql.Web.dll respectivement. J'ai également utilisé gacutil pour installer les deux fichiers sur le GAC. De même, j'ai ajouté les fichiers au répertoire Mono Lib. Les fichiers suivants existent sur ma machine:
/usr/lib/mono/gac/MySql.Data/6.2.3.0__c5687fc88969c44d/MySql.Data.dll
/usr/lib/mono/gac/MySql.Web/6.2.3.0__c5687fc88969c44d/MySql.Web.dll
/usr/lib/mono/2.0/MySql.Data.dll
/usr/lib/mono/2.0/MySql.Web.dll
J'ai aussi créé des fichiers de package pour que je puisse ajouter des références aux assemblées en MonoDevelop. Le dossier /usr/lib/mono/2.0 contient deux fichiers .pc que j'ai ajoutés.
MySql.Web.pc:
Name: MySql.Web
Description: ASP Membership, Role and Profile providers powered by MySQL
Version: 6.2.3
Libs: -r:/usr/lib/mono/gac/MySql.Web/6.2.3.0__c5687fc88969c44d/MySql.Web.dll
MySql.Data.pc:
Name: MySql.Data
Description: Provides connectivity to MySQL databases
Version: 6.2.3
Libs: -r:/usr/lib/mono/gac/MySql.Data/6.2.3.0__c5687fc88969c44d/MySql.Data.dll
À ce stade, je peux utiliser les ensembles dans des projets à l'intérieur MonoDevelop. Les assemblys apparaissent dans la liste des assemblys disponibles lorsque je modifie les références du projet. Le projet se compile maintenant sans erreur dans MonoDevelop. Toutefois, lorsque j'exécute le projet Web compilé dans XSP, l'erreur suivante s'affiche dans le navigateur:
System.IO.FileNotFoundException: Impossible de charger le fichier ou l'assembly 'MySql.Web.dll, Version = 6.2.3.0, Culture = neutre, PublicKeyToken = C5687FC88969C44D 'ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié. Ce qui est frustrant, c'est qu'à l'origine l'erreur était qu'il ne pouvait pas charger MySql. Data .dll et maintenant le message d'erreur est qu'il ne peut pas charger MySQL. Web .dll. Ce qui signifie que j'ai corrigé en quelque sorte le problème que j'avais avec la DLL de données, et maintenant j'ai le problème avec le Web DLL. Je suis allé et refait j'ai appris à résoudre le problème pour la DLL de données, mais je suis incapable de faire fonctionner le Web DLL.
Malheureusement, je suis encore un peu nouveau sur Linux et Mono (mais pas sur ASP.Net) et je n'ai plus de choses à essayer. De même, je n'ai rien trouvé sur Google pour essayer autre que ce qui a été décrit ci-dessus qui me laisse demander de l'aide.
Quelqu'un peut-il m'aider à trouver pourquoi XSP ne trouve pas l'assemblage et ce que je peux faire à ce sujet?
Merci, -Est
J'ai obtenu une sortie qui peut être pertinente. Voir ici (docs.google.com/View?id=dvwt9nw_45f5t7crdx). Ce qui est intéressant, c'est que MySql.Data.dll est chargé (c'est le premier dans mon fichier Web.config). Puis il tente de charger MySql.Web.dll mais est suivi par des erreurs de chargement libc.so.6. Mon interprétation est que cette bibliothèque me manque, mais je peux me tromper. Des idées quoi faire ensuite? –
Vous voudrez peut-être vérifier le site MySql et voir si MySql.Data est compatible avec Mono. – jpobst
Je ne pense pas que ce soit un problème de compatibilité. J'ai remarqué dans le journal que vous m'avez aidé à générer qu'à un moment donné, il tente de trouver la DLL dans /usr/lib/MySql.Web.dll. J'ai placé le fichier là-bas et le site fonctionne maintenant. Cependant, je crois que c'est un symptôme d'un bug quelque part. Que se passe-t-il lorsque j'ai deux applications qui dépendent de différentes versions de la DLL. Je ne peux pas avoir deux versions de la même DLL dans/usr/lib. Je ne sais pas pourquoi il ne peut pas utiliser l'une des 3 autres copies du fichier (une dans la corbeille du projet, une dans le GAC et une dans /usr/lib/mono/2.0) –