CSHTML不在mod_mono / mono3.2.5下呈现

时间:2013-11-29 05:01:11

标签: linux mono apache2 razor-2 mod-mono

背景

我目前在云服务器提供商上有一个工作的ASP.NET4.0 + Razor2.0(仅限视图引擎,没有MVC)+ mod_mono + Apache + mono3.0.4 + Ubuntu12.10。我找到了另一家服务提供商,它比我目前的服务提供商更具成本效益。

问题:

此服务器在Ubuntu13.04上运行,并且能够编译Mono 3.2.5(Mono站点上的最新版本)。我配置它几乎与我的其他服务器相同,并制作了一个简单的CSHTML页面,可以在我的MSVS2010上运行;一个带布局的简单页面。我将所有内容上传到目录,当我尝试打开页面而不是呈现时,服务器只让我下载整个cshtml文件。

我在mod_mono.conf中添加了这些行:

<IfModule mod_mono.c>
        MonoAutoApplication enabled
        MonoServerPath /usr/bin/mod-mono-server4
</IfModule>

AddType application/x-asp-net .cshtml

然后在我的Apache2虚拟主机文件中,我添加了这些行以让Mono处理所有内容:

<Location /mono>
    SetHandler mono-ctrl
        Order deny,allow
        allow from all
</Location>

我的配置与我之前正常工作的服务器相同。我知道的唯一区别是我使用的是Mono 3.2.5和Ubuntu 13.04,我也在使用XSP,mod_mono和libgdiplus的主分支。我通过git拉了代码。

更新

我再次检查了Mono的当前稳定版本并发现它是3.2.4所以我将它重新编译为这个版本,但问题仍然存在。

2013年12月10日更新 我能够使用Debian 7.0重建服务器,它已经在运行ASP.NET 4.0(理论上甚至是4.5)。它现在可以正常运行常规ASPX而不是CSHTML。

页面在MS Windows 7上的IIS下正常运行,但当我尝试在mod_mono(mono 3.2.7运行时)+ Apache2 + Debian或XSP4 + Windows 7上运行它时,它无法呈现并只下载页面可以正确运行ASPX页面。此测试站点仍在运行mod_mono(mono 3.0.4 runtime)+ Apache2 + Ubuntu 12.10的旧服务器上运行。两个服务器在mod_mono.conf和site(/ etc / apache2 / sites-enabled / 000-default)上都具有相同的配置,但无法在新服务器上运行。

1 个答案:

答案 0 :(得分:1)

即使以下内容已经在GAC中,将文件复制并放在“bin”目录中也可以解决问题: System.Web.Helpers.dll System.Web.Razor.dll System.Web.WebPages.dll System.Web.WebPages.Razor.dll