Устранена ошибка 404 ... но теперь у меня 500.
На самом деле я получал эту ошибку при каждом пост-вызове MyService.asmx / SomeMethod.Решение [НЕ РЕАЛЬНО] Я понял это:
location ~ \.(aspx|asmx|ashx|asmx\/(.*)|asax|ascx|soap|rem|axd|cs|config|dll)$ {
fastcgi_pass 127.0.0.1:9001;
index index.html index.htm default.aspx Default.aspx;
fastcgi_index Default.aspx;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
Я изменил его с asmx на asmx / () *.Хорошо, нет 404, но теперь 500: System.Web.HttpException: метод 'POST' не разрешен при доступе к файлу '/Services/MyService.asmx/MyMethod'.
Эти выводы дают мне некоторые подсказки, что nginx donНе правильно обрабатывать такого рода запросы.После почти 2 часов поиска в Google я нашел решение :
location ~ \.asmx(.*) {
fastcgi_split_path_info ^(.+\.asmx)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include /etc/nginx/fastcgi_params;
fastcgi_index Default.aspx;
fastcgi_pass 127.0.0.1:9001;
}
Я был недалеко от него.Просто добавьте это правило местоположения до того, как оно у вас будет, и оно отлично работает.