单2.11 nginx的或Apache(Mono 2.11 with nginx or apache

2019-08-01 15:44发布

我已经安装了平行单(2.11.3)以下说明: http://www.integratedwebsystems.com/2012/04/install-mono-2-11/现在我想在这个单实例上运行我的ASP.NET网站。 我创建了使用“Internet站点”模板在VS 2010中一个空MVC 4个网站,并将其发布到运行单的Linux机器。

我已经成功地通过xsp4运行遵循这些说明( http://www.integratedwebsystems.com/2011/06/get-mvc3-razor-running-on-mono/ )成立之前运行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网关错误错误,日志文件称“上游发送意想不到的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 

有很多帖子关于这个主题,即使在这里,在#1,但没有真正的答案。 但是,有些用户报告说,他们成功地在单声道与这些服务器上运行MVC4网站,所以我想知道是否有人愿意分享他们的配置设置或一步一步的指示?

Answer 1:

该安装包将一些文件在错误的地方。 对于Apache,你必须在文件MOD-单server4.exe从/usr/lib/mono/4.0移动到/usr/lib/mono/4.5和更新文件中引用的/ usr / bin中/ MOD-单服务器4。

如果您正在使用XSP或FastCGI的,将需要xsp4.exe和FastCGI,单server4.exe和在/ usr / bin中各自引用相同的待遇。

(我开始后悔我跟着下来这个单路......)



Answer 2:

这里有一个脚本这解决了我的单声道3.0.3 / MVC 3 / Nginx的问题。 复制了所需的文件后,现场拉起罚款。



Answer 3:

你需要知道哪个端口单服务器收听,并在Nginx的配置文件来设置fastcgi_pass它。



Answer 4:

我不是这方面的专家,但以下nginx的配置稍有不同的配置对我的作品(nginx的+单声道2.10 + F#+ websharper):

server {
    listen   80;
    access_log   /var/log/myapp/access.log;

    location / {
            root /opt/myapp;
            index index.html index.htm default.aspx Default.aspx;
            fastcgi_pass unix:/var/run/myapp/fastcgisocket;
            include /etc/nginx/fastcgi_params;
    }
}

当然,FastCGI的,单服务器将被配置为使用插座/ var / run中/ MYAPP / fastcgisocket。

请注意,你必须要小心此套接字的R / W的权限。

我仍然有nginx的不发送多个请求的问题,并行到FastCGI,单服务器来处理,但除此之外它的作品不错。

我希望它能帮助。



文章来源: Mono 2.11 with nginx or apache