Bri*_*ian 5 apache asp.net mono asp.net-mvc-4 asp.net-4.5
我试图让Mono 3.0安装在.NET 4和.NET 4.5下运行MVC4站点.我一直在处理各种错误,我该怎么做才能让它运行起来?
服务器配置
Apache/Mono配置
MonoServerPath "/usr/local/bin/mod-mono-server4"
Run Code Online (Sandbox Code Playgroud)
/ usr/local/bin/mod-mono-server4内容:
#!/bin/sh
exec /usr/local/bin/mono $MONO_OPTIONS "/usr/local/lib/mono/4.5/mod-mono-server4.exe" "$@"
Run Code Online (Sandbox Code Playgroud)
更新
问题的关键在于Mono没有附带网站所需的MVC4.它仍然有MVC3 dll,但它有Razor 2 dll但不是MVC3想要起诉的Razor 1 dll.
您现在所需的一切都可以在Mono框架或NuGet中使用.我为.Net 4.0和.Net 4.5创建了MVC4的可下载模板以及解决问题的一些注意事项:
博文的步骤如下:
从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
Run Code Online (Sandbox Code Playgroud)
(用您的单声道版本替换3.2.5,您可以通过单声道版本获得命令行);
Windows上的.Net需要Microsoft.Web.Infrastructure.dll,因此如果您想要跨平台可部署性,删除它不是更简单的方法
成功
如果你想在Mono上运行MVC4,你需要使用一些Microsoft dll,但目前Mono还没有提供。
需要注意的是 -粗略地查看 Mono 源代码,MC4 源代码中似乎存在 3.2.0 版本中不存在的方法和类。可能有些功能已损坏。我正在运行的站点实际上是一个针对最新 dll 构建的 MVC3 站点。
要复制的 Microsoft DLL
一旦你复制了 dll,如果你仍然遇到问题,如果上述修复不起作用,你可能需要做一些侦探工作。如果您收到一条错误消息,指出 Mono 找不到 DLL,通常是以下三个原因之一:
故障排除
没有 dll -您可以尝试使用 Microsoft 版本的 DLL
当 GAC 或项目文件夹中安装了正确的 DLL 时,它会查找旧版本的 DLL -项目中的程序集可能在某处引用该版本。您可以使用绑定重定向来强制使用您所使用的特定版本
它仍然找不到 dll -将程序集添加到 web.config 的编译/程序集部分
您收到“找不到已搜索的视图...”消息 -如果该特定视图文件夹中的任何视图存在编译错误,那么您将收到此消息。
| 归档时间: |
|
| 查看次数: |
10375 次 |
| 最近记录: |