Mono + MVC 4 + .NET 4.0 + nginx 404(也使用XSP)

时间:2013-10-07 01:25:52

标签: nginx mono xsp

在测试框上:

root@ubuntu:/var/www# mono --version
Mono JIT compiler version 3.0.6 (Debian 3.0.6+dfsg-1~exp1~pre1)
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug
    LLVM:          supported, not enabled.
    GC:            Included Boehm (with typed GC and Parallel Mark)

XSP(从github编译)

root@ubuntu:/var/www# xsp4 --version
Mono.WebServer2.dll 0.4.0.0
(c) (c) 2002-2011 Novell, Inc.
Classes for embedding an ASP.NET server in your application .NET 4.0.

nginx config:

root@ubuntu:/var/www# cat /etc/nginx/sites-available/default
server {
        listen 80;
        access_log /var/log/nginx/mono.log;
        error_log /var/log/nginx/mono.err.log;

        location / {
                root /var/www/;
                index index.html index.htm default.aspx Default.aspx;
                fastcgi_pass 127.0.0.1:9000;
                include /etc/nginx/fastcgi_params;
        }
}

运行fastcgi-mono-server4:

root@ubuntu:/var/www# fastcgi-mono-server4 /applications="/:/var/www/" /socket=tcp:127.0.0.1:9000 -v
[2013-10-06 16:11:07.579396] Notice : Adding applications '/:/var/www/'...
[2013-10-06 16:11:07.607587] Notice : Registering application:
[2013-10-06 16:11:07.607832] Notice :     Host:          any
[2013-10-06 16:11:07.608034] Notice :     Port:          any
[2013-10-06 16:11:07.608230] Notice :     Virtual path:  /
[2013-10-06 16:11:07.608454] Notice :     Physical path: /var/www/

我得到的只是404,我设置了权限775只是为了确保它不是DLL的权限问题,不去。

我甚至在我的global.asax中试过这个:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    throw new Exception("test");
}

仍然只是404s而不是错误所以xsp似乎甚至不承认这里有一个应用程序...在Windows机箱上运行正常。我错过了什么吗?我也想在Linux上开发Mono ......

1 个答案:

答案 0 :(得分:3)

你得到什么错误?

也许看一下Heroku .NET buildpack如何运行:https://github.com/friism/dev-heroku-buildpack-mono/blob/master/nginx/start#L8

有几篇博客文章详细介绍,以及README:

通常可以通过传递此参数来获取fastcgi-mono-server输出其他调试信息:/printlog=True