2010-11-21 13 views

Respuesta

62

Sí, lo hace. Lo tengo trabajando con mono en Linux.

Usted necesita mono 2.10.2+ de las fuentes estables de
http://ftp.novell.com/pub/mono/sources-stable/
http://download.mono-project.com/sources/mono/

Entonces, es necesario localcopy estos ensamblajes en el directorio bin de la aplicación (los toma desde Visual Studio en Windows):

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

Entonces, puede que tenga que deshacerse de los siguientes errores que haya realizado como esto:

Error: Los ámbitos de almacenamiento no se pueden crear cuando _AppStart se está ejecutando.
Causa: Microsoft.Web.Infrastructure.dll se localcó en el directorio bin .
Resolución: elimine Microsoft.Web.Infrastructure.dll y utilice la versión mono.

Error: código IL no válido en System.Web.Handlers.ScriptModule: .ctor(): cuerpo del método está vacío.
Causa: System.Web.Extensions.dll de alguna manera se copia localmente en el directorio bin .
Resolución: elimine System.Web.Extensions.dll y utilice la versión mono.


Error: No se pueden cargar las clases en el módulo. Descripción: HTTP 500. Solicitud de procesamiento de error.
Causa: System.Web.WebPages.Administration.dll se localcó en el directorio bin .
Resolución: Eliminar System.Web.WebPages.Administration.dll y Deshacer referencia que


Error: No se pudo cargar el tipo
'System.Web.WebPages.Razor.RazorBuildProvider' del conjunto 'del sistema. Web.WebPages.Razor, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 '. Descripción: HTTP 500. Error solicitud de procesamiento.
Causa: System.Web.Razor.dll está dañado o no (o x64 en lugar de x32 o viceversa) ...
Resolución: Conseguir una versión no corrompida de System.Web.Razor.dll y localcopy al directorio bin

Editar
a partir del mono 2.12/MonoDevelop 2.8, todo esto ya no es necesario.

Tenga en cuenta que el 2,10 (Ubuntu 11.10), hay que localcopy System.Web.DynamicData.dll así, o de lo contrario se produce un error que sólo se produce en App_Start (si no lo hace, se obtiene una YSOD la primera vez que llame una página, pero SOLAMENTE la primera vez, porque solo entonces se llama a App_Start).

Nota
para mono 3.0+ con ASP.NET MVC4: hay un "error" en el script de instalación. O más bien un estado incompleto.

mod-mono, fastcgi-mono-server4 y xsp4 no funcionarán correctamente.
Por ejemplo: fastcgi-mono-server4 le da esta salida de depuración:

[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" 

Esto es, porque después de la instalación de mono3, utiliza Framework 4.5, pero XSP, fastcgi-mono-server4 y mod-mono no están en el 4.5 GAC, solo el 4.0 gac.
Para solucionar este problema, utilice este 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 

Y si lo usa a través de FastCGI (por ejemplo nginx), también necesita esta revisión para TransmitFile para el error chuncked_encoding
Why do I have unwanted extra bytes at the beginning of image? (fijo en mono 3.2. 3)

PS:
que pueda obtener el .debs de 3.x desde aquí:
https://www.meebey.net/posts/mono_3.0_preview_debian_ubuntu_packages/ o las compilar yourselfs de github Installing Mono 3.x in Ubuntu/Debian o como esto de las fuentes estables http://ubuntuforums.org/showthread.php?t=1591370


Ahora puede utilizar el Xamarin provided packages

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list 
sudo apt-get update 

Si necesita la variada tarde ST presenta, también puede buscar el CI packages (nightly builds, so to say), si necesita la última (o casi última) versión

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 
echo "deb http://jenkins.mono-project.com/repo/debian sid main" | sudo tee /etc/apt/sources.list.d/mono-jenkins.list 
sudo apt-get update 
+0

No puedo encontrar ninguna versión x64 o x86 (x32 como usted escribió). No creo que haya realmente uno. Aunque tengo el mismo error por un par de minutos, de repente desapareció y no puedo entender por qué :( – Adaptabi

+0

@DotNetWise: Estás ahí. No pude encontrar la maquinilla de afeitar al principio, así que lo tomé de MSIL GAC en x64. No funcionó entonces, no pude hacer referencia en mono al principio. Y pensé que podría ser la causa de problemas de 32/64 bits. Probablemente fue corrupto debido a fallas. , pero parece que funciona correctamente en Windows. Pero algo es definitivamente sospechoso sobre System.Web.Razor.dll. –

+1

Eres un campeón - He estado combatiendo el error con los alcances de almacenamiento por un tiempo, encontré esto y Lo resolvió. Gracias –

3

Supongo que tendrá que esperar a la publicación de MVC3 (cuando se convierte en código abierto) antes de que pueda responderse perfectamente.

Estoy seguro de que el equipo Mono lo hará funcionar, sin embargo.

3

Mono 2.10 en adelante es totalmente compatible con MVC3 y Razor, aunque el Mono Project actualmente no puede enviar Mono con una implementación de fuente abierta de la pila MVC3/Razor incluida (de la misma manera que MVC1 y MVC2).

Desde el Release Notes:

Although ASP.NET MVC3 is open source and licensed under the terms of the MS-PL license, it takes a few dependencies on new libraries that are not open source nor are they part of the Microsoft.NET Framework.

At this point we do not have open source implementations of those libraries, so we can not ship the full ASP.NET MVC3 stack with Mono (We still ship ASP.NET MVC 1 and MVC 2 with Mono for your deployment enjoyment).

This Mono release however has enough bug fixes and patches that you will be able to run ASP.NET MVC3 sites with it.

Cuestiones relacionadas