Ошибка 404 для WebResource.axd с fastcgi-mono-server4

Ошибка 404 для WebResource.axd с fastcgi-mono-server4

У меня есть простое приложение ASP.NET WebForms, которое я создал в Windows и скопировал на сервер Linux (Ubuntu 14.04), на котором запущены fastcgi-mono-server4 и nginx. Приложение отлично работает на Windows, но при запуске на Mono оно не может получить скрипт WebResource.axd?d=...из-за ошибки 404. Таким образом, все постбэки терпят неудачу, поскольку WebForm_OnSubmit()is undefined.

Если я удалю свой ScriptManagerи все валидаторы со страницы, она будет работать нормально на mono, потому что WebResource.axdбольше не требуется. Однако я не хочу этого делать, потому что хочу использовать AJAX.

Я попробовал решение вэта почта, но это не дало эффекта. Я также пробовал добавить этот тег в system.webServer/handlersраздел, но это тоже не сработало.

Я также попробовал следоватьЭта статьяиспользовать AJAX без ScriptManager. Это работало нормально в Windows, но не сработало в Mono, выдав мне ошибку 404 для всех моих запросов веб-сервиса.

Итак, мой вопрос: почему я получаю ошибку 404 при попытке загрузить WebResource.axd, и как мне ее исправить? Есть ли какая-то конфигурация mono или nginx, которую мне нужно исправить?

EDIT: вот моя конфигурация 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;
    }
}

решение1

Я нашел ответ, используяЭта статья. По сути, мне нужно было добавить специальное расположение для файлов .axd в моей конфигурации nginx. Моя окончательная конфигурация ниже; она также позволяет работать методам страницы.

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;
    }
}

Связанный контент