我已经按照以下说明安装了并行 Mono (2.11.3):http: //www.integratedwebsystems.com/2012/04/install-mono-2-11/现在我想在这个 Mono 实例上运行我的 ASP.NET 站点. 我使用 VS 2010 中的“Internet 站点”模板创建了一个空的 MVC 4 站点,并将其发布到运行 Mono 的 Linux 机器上。
我已经按照这些说明( http://www.integratedwebsystems.com/2011/06/get-mvc3-razor-running-on-mono/ )通过 xsp4 成功运行它,以便在运行 xsp4 之前设置环境变量。它可以正常工作(我看到一些新功能,如 CSS 捆绑,不起作用,但我稍后会处理它)。
现在,我想使用像 apache 或 nginx 这样的生产服务器。但是,这似乎几乎是不可能的,而且似乎我不是唯一一个遇到这个问题的人。例如,使用这个简单的 nginx 配置
server
{
listen 80;
server_name mvctest.mono;
access_log /var/www/mvctest/log/access.log;
error_log /var/www/mvctest/log/error.log debug;
location /
{
root /var/www/mvctest/;
index index.html index.htm default.aspx Default.aspx;
fastcgi_index /Home;
fastcgi_pass 127.0.0.1:9000;
include /etc/nginx/fastcgi_params;
}
}
导致 502 Bad Gateway 错误,并且日志文件显示“上游发送了意外的 FastCGI 记录:3 在从上游读取响应标头时”。至于 Apache + mod_mono_server4,我没有移过这个错误
Exception caught during reading the configuration file:
System.MissingMethodException: Method not found: 'System.Configuration.IConfigurationSectionHandler.Create'.
at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in <filename unknown>:0
at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0
at System.Configuration.ConfigurationManager.get_AppSettings () [0x00000] in <filename unknown>:0
at Mono.WebServer.Apache.Server.get_AppSettings () [0x00001] in /opt/mono-2.11/build/xsp-2.10.2/src/Mono.WebServer.Apache/main.cs:208
at Mono.WebServer.Apache.Server+ApplicationSettings..ctor () [0x0002a] in /opt/mono-2.11/build/xsp-2.10.2/src/Mono.WebServer.Apache/main.cs:63
有很多关于这个主题的帖子,甚至在 Stackoverflow 上,但没有真正的答案。但是,一些用户确实报告说他们成功地使用这些服务器在单声道上运行 MVC4 站点,所以我想知道是否有人愿意分享他们的配置设置或分步说明?