Tél. 888.519.8529 (Sans frais) | Accueil | Gamme | Apropos | Nous joindre | English

Mise à jour de Mono ASP.Net

16 septembre 2008

Cette semaine nous avons mise-à-niveau notre équipement avec un nouveau PC qui roule Ubuntu 8.04 "the Hardy Heron". Nous avons encontrés certains problèmes lorsque nous avons déplacé nos sites web sous développement avec Mono ASP.Net.

Nous avons copié les entrées dans /etc/apache2/apache2.conf, et on s'attendait que tout fonctionne comme avans puisque nous avons installé toutes les dépendances avec synaptic (MySQL, Mono etc.). Mais par surprise nous avons reçu l'erreur suivante:

Service Temporarily Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Apache/2.2.8 (Ubuntu) mod_mono/1.2.5 Server at BasicTest Port 80


Nous avons inspecté le fichier log d'apache pour isoler la source de l'erreur:

 vim /var/log/apache2/error.log


Le fichier présentair l'erreur suivante:

[Mon Sep 15 15:54:13 2008] [error] Failed running '/usr/lib/mono/2.0/mod-mono-server2.exe --filename /tmp/mod_mono_server_BasicTest --applications /:/home/developper/MonoDevelop Projects/BasicTest --nonstop --root /home/developper/MonoDevelop Projects/BasicTest (null) (null) (null) (null) (null)'. Reason: Exec format error

Nous avions jamais reçue une erreur du genre auparavent, donc nous avons cherché sur Google pour des indices. Certains gens disaient simplement d'elever le .exe de la fin dans la directive MonoPath dans un fichier de configuration Apache (plus d'information plus tard). Donc on l'a fait, et nous avons reçu l'erreur suivante:

[Mon Sep 15 16:24:31 2008] [error] Failed running '/usr/lib/mono/2.0/mod-mono-server2 --filename /tmp/mod_mono_server_BasicTest --applications /:/home/developper/MonoDevelop Projects/BasicTest/BasicTest --nonstop --root /home/developper/MonoDevelop Projects/BasicTest/BasicTest (null) (null) (null) (null) (null)'. Reason: No such file or directory

Elever le .exe sans réfléchir n'a pas résolu le problème, car l'éxécutable est en faite situé dans /usr/bin/. Donc, la section complète qu'on doit placer dans apache.conf pour une configuration fonctionnelle est la suivante:

<VirtualHost *:80>
    ServerName BasicTest
    DocumentRoot "/home/developper/MonoDevelop Projects/BasicTest/BasicTest"
    MonoApplications BasicTest  "/:/home/developper/MonoDevelop Projects/BasicTest/BasicTest"
    MonoDocumentRootDir "/home/developper/MonoDevelop Projects/BasicTest/BasicTest"
    MonoServerPath BasicTest /usr/bin/mod-mono-server2
    MonoDebug true
   <Location />
      MonoSetServerAlias BasicTest
      SetHandler mono
   </Location>
   ErrorLog /var/log/apache2/basictest.error.log
   CustomLog /var/log/apache2/basictest.access.log combined
</VirtualHost>

La ligne importante est en gras. Maintenant, si vous avez une entrée dans votre fichier /etc/hosts, vous pouvez accéder le site local viahttp://BasicTest

J'espère que ce guide vous a été utilie, laissez-nous savoir.

 


 

Ceci ne s'applique pas à notre configuration, mais vous affecte peut-être, donc pour compléter nous alons l'inclure dans ce document. Dans votre mod_mono conf:

sudo vim /etc/apache2/mods-enabled/mod_mono.conf

Vous verrez deux lignes comme celle-ci:

#Include /etc/mono-server/mono-server-hosts.conf
Include /etc/mono-server2/mono-server2-hosts.conf


Si vous voulez utiliser Mono ASP.Net 2.0 (comme nous), la deuxième ligne devrait être dé-commenté. Maintenant éditez le fichier en question.

sudo vim /etc/mono-server2/mono-server2-hosts.conf

Et changez

MonoServerPath default /usr/lib/mono/2.0/mod-mono-server2.exe

pour

MonoServerPath default /usr/bin/mod-mono-server2

© Droits d'auteur 2009 Abludo conception de sites web