48 votes

Est-ce que Razor View Engine fonctionne pour Mono?

J'ai essayé de chercher un peu et je n'ai pas trouvé de réponse. Le moteur Razor View fonctionne-t-il en Mono?

60voto

Quandary Points 12867

Oui, c'est fait. J'ai de travailler avec mono sous Linux.

Vous avez besoin mono 2.10.2+ de la stabilité des sources de
http://ftp.novell.com/pub/mono/sources-stable/
http://download.mono-project.com/sources/mono/

Ensuite, vous devez localcopy ces assemblées dans votre app du répertoire bin (vous les prendre à partir de Visual Studio sous Windows):

System.Web.Mvc.dll
System.Web.Razor.dll
System.Web.WebPages.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.Razor.dll

Ensuite, vous pourriez avoir à se débarrasser des erreurs suivantes que vous pouvez faire comme ceci:

Erreur: champs de Stockage ne peut pas être créé lors de _AppStart est en cours d'exécution.
Cause: Microsoft.Web.Infrastructure.dll a localcopied à la poubelle répertoire.
Résolution: Supprimer Microsoft.Web.Infrastructure.dll et l'utilisation de la mono version.

Erreur: Invalid code IL dans le Système.Web.Les gestionnaires.ScriptModule:.ctor (): corps de la méthode est vide.
Cause: System.Web.Extensions.dll en quelque sorte obtient localcopied à la poubelle répertoire.
Résolution: Supprimer System.Web.Extensions.dll et utiliser la version mono.


Erreur: Les classes dans le module ne peut pas être chargé. Description: HTTP 500. Erreur de traitement de la demande.
Cause: System.Web.WebPages.Administration.dll a localcopied à la poubelle répertoire.
Résolution: Supprimer System.Web.WebPages.Administration.dll et déréférencement il


Erreur: impossible de charger le type
'Système.Web.Les pages web.De rasoir.RazorBuildProvider " de l'assemblée 'Système.Web.Les pages web.Rasoir, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35". Description: HTTP 500. Erreur le traitement de votre requête.
Cause: System.Web.Razor.dll est endommagé ou manquant (ou 64 bits au lieu de 32 ou vice-versa) ...
Résolution: non version de System.Web.Razor.dll et localcopy le répertoire bin

Modifier
En tant que mono-2.12 / MonoDevelop 2.8, tout cela n'est plus nécessaire.

Notez que sur 2.10 (Ubuntu 11.10), on a besoin de localcopy System.Web.DynamicData.dll aussi bien, ou sinon, vous obtenez une erreur qui se produit uniquement sur App_Start (si vous ne le faites pas, vous obtenez un YSOD la première fois que vous appelez une page, mais SEULEMENT la première fois, parce que seulement alors App_Start est appelé.).

Note
pour la mono 3.0+ avec ASP.NET MVC4: Il y a un "bug" dans le script d'installation. Ou plutôt d'une incomplétude.

mod-mono, fastcgi-mono-server4 et xsp4 ne fonctionne pas correctement.
Par exemple: fastcgi-mono-server4 vous donne cette sortie de débogage:

[error] 3384#0: *101 upstream sent unexpected FastCGI record: 3 while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:8000"

C'est, parce que, après l'installation de mono3, il utilise le framework 4.5, mais xsp, fastcgi-mono-server4 et mod-mono ne sont pas dans les 4,5 GAC, seule la version 4.0 du gac.
Pour résoudre ce problème, utilisez ce script bash:

#!/bin/bash

# Your mono directory
#PREFIX=/usr
PREFIX=/opt/mono/3.0.3


FILES=('mod-mono-server4'
       'fastcgi-mono-server4'
       'xsp4')

cd $PREFIX/lib/mono/4.0

for file in "${FILES[@]}"
do
   cp "$file.exe" ../4.5
done


cd $PREFIX/bin

for file in "${FILES[@]}"
do
  sed -ie 's|mono/4.0|mono/4.5|g' $file
done

Et si vous l'utilisez via FastCGI (par exemple, nginx), vous avez également besoin de ce correctif pour TransmitFile pour la chuncked_encoding bug
Pourquoi dois-je indésirable octets supplémentaires au début de l'image? (fixe en mono 3.2.3)

PS:
Vous pouvez obtenir le .debs pour 3.x à partir d'ici:
https://www.meebey.net/posts/mono_3.0_preview_debian_ubuntu_packages/ ou les compiler vous à partir de github L'Installation De Mono 3.x (3.0.x et/ou 3.2.x) ou comme ce à partir de la stabilité des sources http://ubuntuforums.org/showthread.php?t=1591370

4voto

yojimbo87 Points 27744

3voto

Will Dean Points 25866

À mon avis, vous devrez attendre la publication de MVC3 (lorsqu'il deviendra open-source) avant de pouvoir répondre parfaitement.

Je suis sûr que l'équipe Mono réussira, cependant.

3voto

Kynth Points 1498

Mono 2.10 partir soutient pleinement MVC3 et Rasoir, mais le Mono Projet ne peut pas actuellement navire Mono avec un open-source de mise en œuvre de la MVC3/Rasoir à pile incluse (de la même manière que MVC1 et MVC2 sont inclus).

À partir de la Release Notes:

Bien que ASP.NET MVC3 est open source et sous les termes de la MS-PL de la licence, il faut un peu de dépendances sur de nouvelles bibliothèques qui sont pas open source, ni une partie intégrante de l'Microsoft.NET Cadre.

À ce stade, nous n'avons pas ouvert source implémentations de ces bibliothèques, de sorte que nous ne pouvons pas expédier le plein ASP.NET MVC3 pile avec Mono (Nous avons encore navire ASP.NET MVC 1 et MVC 2 avec Mono pour votre déploiement de la jouissance).

Cette Mono version a cependant assez d' corrections de bogues et des correctifs que vous serez en mesure d'exécuter ASP.NET MVC3 sites avec c'.

1voto

Alastair Points 998

Il semble que nous y arrivions:

http://gonzalo.name/blog/archive/2011/Jan-21.html

On dirait qu'il ne figure pas encore dans les versions publiées, mais vous pouvez l'exécuter à partir du contrôle de source.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X