Error 404 para WebResource.axd con fastcgi-mono-server4

Error 404 para WebResource.axd con fastcgi-mono-server4

Tengo una aplicación ASP.NET WebForms simple que creé en Windows y copié en un servidor Linux (Ubuntu 14.04) que ejecuta fastcgi-mono-server4 y nginx. La aplicación funciona bien en Windows, pero cuando se ejecuta en mono no puede obtener el WebResource.axd?d=...script debido a un error 404. Como tal, todas las devoluciones de datos fallan porque WebForm_OnSubmit()no están definidas.

Si elimino mi ScriptManagery todos los validadores de la página, funciona bien en mono porque WebResource.axdya no es necesario. Sin embargo, no quiero hacer eso porque quiero usar AJAX.

Probé la solución enesta publicación, pero no tuvo ningún efecto. También intenté agregar esa etiqueta a la system.webServer/handlerssección, pero tampoco funcionó.

También intenté seguirEste artículoutilizar AJAX sin un ScriptManager. Funcionó bien en Windows, pero falló en mono al darme un error 404 para todas mis solicitudes de servicios web.

Entonces mi pregunta es: ¿por qué aparece un error 404 al intentar descargar WebResource.axdy cómo lo soluciono? ¿Hay alguna configuración mono o nginx que deba arreglar?

EDITAR: aquí está mi configuración de nginx:

server {
    listen       80;
    server_name  www.example.com;
    access_log   /var/log/nginx/example.access.log  main;
    location / {
        root         /var/www/www.example.com;
        index        Default.aspx;
        try_files $uri $uri/ /Default.aspx;
        fastcgi_index Default.aspx;
        fastcgi_pass 127.0.0.1:9000;
        include /etc/nginx/fastcgi_params;
        fastcgi_param PATH_INFO "";
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Respuesta1

Descubrí la respuesta usandoEste artículo. Básicamente, necesitaba agregar una ubicación especial para los archivos .axd en mi configuración de nginx. Mi configuración final está a continuación; también permite que funcionen los métodos de página.

server {
    listen       80;
    server_name  www.example.com;
    access_log   /var/log/nginx/www.example.access.log;
    location ~\.(aspx|axd)(.*) {
        include fastcgi_params;
        fastcgi_split_path_info ^(.+.aspx)(.*)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_index Default.aspx;
        fastcgi_pass 127.0.0.1:9000;
    }
    location / {
        root         /var/www/www.example.com;
        index        Default.aspx;
        try_files $uri $uri/ $uri.aspx /Default.aspx;
        fastcgi_index Default.aspx;
        fastcgi_pass 127.0.0.1:9000;
        include /etc/nginx/fastcgi_params;
        fastcgi_param PATH_INFO "";
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

información relacionada