我正在尝试使Mono3.0安装程序在.NET 4和.NET 4.5下运行.NET站点。我一直在处理各种错误,我能做些什么来让它启动并运行呢?
服务器配置
Apache/Mono Config
MonoServerPath "/usr/local/bin/mod-mono-server4"/usr/local/bin/mod-mono 4内容:
#!/bin/sh
exec /usr/local/bin/mono $MONO_OPTIONS "/usr/local/lib/mono/4.5/mod-mono-server4.exe" "$@"更新
问题的症结在于Mono没有提供站点所需的MVC4。它仍然有MVC3 dll,但是它有Razor 2 dll,但没有MVC3想起诉的Razor 1 dll。
发布于 2013-07-28 15:36:49
成功
如果您想在Mono上运行MVC4,您需要使用一些此时Mono不提供的Microsoft。
注意--粗略地看一下Mono源代码,MC4源代码中似乎有一些在3.2.0构建中不存在的方法和类。可能有一些特征被破坏了。我正在运行的站点对于所有意图和目的来说都是一个针对最新dlls构建的MVC3站点。
Microsoft DLL复制
一旦复制了dll,如果仍然有问题,如果上面的修复不起作用,您可能需要做一些检测工作。如果您收到一条错误消息说Mono找不到DLL,这通常是以下三个原因之一:
Troubleshooting
发布于 2014-01-13 23:24:31
您所需的一切现在都可以在Mono框架中或在NuGet上使用。我为MVC4为.Net 4.0和.Net 4.5创建了可下载的模板,并就如何解决这些问题做了一些说明:
http://www.cafe-encounter.net/p1510/asp-net-mvc4-net-framework-version-4-5-c-razor-template-for-mono-on-mac-and-linux
博客文章中的步骤如下:
从bin\目录和项目中删除Microsoft.Web.Infrastructure.dll
或者,从命令行:
sudo mkdir /Library/Frameworks/Mono.framework/Versions/3.2.5/etc/mono/registry
sudo chmod g+rwx /Library/Frameworks/Mono.framework/Versions/3.2.5/etc/mono/registry(将3.2.5替换为您的单一版本,您可以在命令行中得到它的单版本);
Microsoft.Web.Infrastructure.dll在.Net上是必需的,所以如果您想要跨平台部署,删除它并不是一种更简单的方法。
https://stackoverflow.com/questions/17900677
复制相似问题