【问题标题】:Razor Engine on Mono 3.2.x with Fast CGI - target specific .net?具有快速 CGI 的 Mono 3.2.x 上的 Razor 引擎 - 目标特定的 .net?
【发布时间】:2013-12-07 00:20:54
【问题描述】:

我的网站在 mono 2.10 上运行,而我即将完成升级到 mono 3.2.x 的全新服务器。

它使用 XSP4 工作,ServiceStack Razor 视图正确呈现。 (并且它在 2.10 中修复了很多人工制品)

当我将站点设置为使用 nginx + Fast CGI (4) 但是我得到一个 HttpCompileException,原因是:

The predefined type `System.Collections.Generic.IReadOnlyList' is defined multiple times. Using definition from `mscorlib.dll'

请记住,这适用于 xsp4,所以我认为它需要一些设置才能将其绑定到一个 .Net 实例,也许它在 .net 4.0 和 .net 4.5 之间存在混淆?关于如何强制它只使用其中之一的任何建议?

注意:我使用最新版本 (3.2.7) 从 git 安装,因为 3.2.5 版本会崩溃。我使用的是干净的 Amazon EC2 Ubuntu 12.04 64 位。它之前没有单声道,当我尝试 3.2.5 时,它是另一个现在已删除的实例。

这与以下错误基本相同:RazorEngine on Mono - TemplateCompilationException thrown

但我没有安装其他版本。构建过程添加了其他已被删除的无效。 mscorlib 的所有实例都在这里:

/usr/lib/mono/2.0/mscorlib.dll
/usr/lib/mono/4.5/mscorlib.dll
/usr/lib/mono/4.0/mscorlib.dll

【问题讨论】:

  • 刚刚尝试使用 XSP .webapp 方法而不是直接使用,以防它与 XSP 一样工作但没有运气......
  • Apache 工作...所以现在就这样吧。必须是 Fast CGI 的一些微妙配置。
  • 这里有同样的问题。只安装了一个单声道。
  • Apache 在 FastCGI 下工作,还是你在使用 mod_mono? @哈利

标签: razor nginx mono servicestack fastcgi


【解决方案1】:

我发现了问题所在并能够解决它。

罪魁祸首是这些文件: https://github.com/mono/xsp/tree/master/src/Mono.WebServer.FastCgi/Compatibility

出于某种原因,他们添加了这些编译到 NET 4.0 目标(没有 IReadOnlyList 类)的兼容性类,但是当我们运行 fastcgi-mono-server4 时,它在 4.5 运行时下运行,这确实有一个 IReadOnlyList 类,因此会生成 Razor HttpCompile 错误。

解决方案是将这两个参数 -d:NET_4_5 -sdk:4.5 添加到 FastCGI 源项目的 Makefile.in 中:

@NET_4_0_TRUE@  $(DMCS) -d:NET_2_0 -d:NET_4_0 -d:NET_4_5 -sdk:4.5 $(MCSFLAGS) $(references4) /out:$@ \

然后我使用 ./configure、make、make install 重新编译并重新安装,Razor 编译错误就消失了。

如果您不想经历所有这些麻烦,我建议您坚持使用 xsp 项目的最新发布版本,它没有这些兼容性类。

【讨论】:

  • Dema 我不明白一件事,参数的变化是在 FastCGI 单服务器上吗?如果是这样,您从哪里获得修改它的源?我有点困惑,我用 nginx 和 fastcgi 运行了 mono 2.10,我也希望升级 t 3.2x
  • 我是从 git 安装的,我在修改 Makefile.in 后重新配置了它。但是当我做到pastebin.com/BN03C4RX你有什么想法吗?
  • 已修复,我必须对 Fpm Makefile.in 执行相同操作
  • 很高兴你成功了。
猜你喜欢
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 2011-08-21
  • 2011-08-08
  • 2011-07-28
相关资源
最近更新 更多