我尝试搜索了一下,但没有找到答案。Razor视图引擎在Mono中工作吗?
错误:在执行_AppStart时无法创建存储范围。
原因:Microsoft.Web.Infrastructure.dll被本地复制到bin目录中。
解决方案:删除Microsoft.Web.Infrastructure.dll并使用mono版本。
错误:System.Web.Handlers.ScriptModule:.ctor()中的无效IL代码:方法体为空。
原因:System.Web.Extensions.dll以某种方式被本地复制到bin目录中。
解决方案:删除System.Web.Extensions.dll并使用mono版本。
错误:无法加载模块中的类。描述:HTTP 500.请求处理出错。
原因:System.Web.WebPages.Administration.dll被本地复制到bin目录中。
解决方案:删除System.Web.WebPages.Administration.dll并取消引用它。
错误:无法加载类型
'System.Web.WebPages.Razor.RazorBuildProvider'来自程序集
'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'。描述:HTTP 500. 请求处理出错。
原因:System.Web.Razor.dll损坏或丢失(或x64代替x32或反之)...
解决方案:获取一个未损坏的System.Web.Razor.dll版本并将其本地复制到bin目录中。
编辑
从mono 2.12 / MonoDevelop 2.8开始,所有这些都不再需要。
System.Web.DynamicData.dll
,否则您会在App_Start时出现错误(如果不这样做,您将在第一次调用页面时得到YSOD,但仅限于第一次,因为只有在此时才会调用App_Start)。[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"
这是因为安装了mono3之后,它使用的是4.5框架,但是xsp、fastcgi-mono-server4和mod-mono不在4.5 GAC中,只有4.0 gac中存在。
为了解决这个问题,请使用以下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
PS:
您可以从这里获取3.x的.deb文件:
https://www.meebey.net/posts/mono_3.0_preview_debian_ubuntu_packages/
或者从github上编译自己的软件包
在Ubuntu / Debian中安装Mono 3.x
或者像这样从稳定源中获取
http://ubuntuforums.org/showthread.php?t=1591370
2015
现在您可以使用Xamarin提供的软件包。
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
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
我猜你需要等待MVC3的发布(并成为开源)才能得到完美的答案。
不过我相信Mono团队会让它运行起来的。