Назад | Перейти на главную страницу

Развертывание веб-API ASP.NET с использованием Mono и Nginx

Я уже довольно давно безуспешно пытаюсь развернуть свой веб-API. Независимо от того, как я бросаю вещи в свои конфигурации (по рекомендациям моих поисков в Google), я все равно сталкиваюсь с той же досадной ошибкой:

System.Web.HttpException
at System.Web.StaticFileHandler.ProcessRequest (System.Web.HttpContext context) [0x00000] in <filename unknown>:0
at System.Web.DefaultHttpHandler.BeginProcessRequest (System.Web.HttpContext context, System.AsyncCallback callback, System.Object state) [0x00000] in <filename unknown>:0
at System.Web.HttpApplication+<Pipeline>c__Iterator1.MoveNext () [0x00000] in <filename unknown>:0
at System.Web.HttpApplication.Tick () [0x00000] in <filename unknown>:0

В моем браузере это отображается как ошибка 404.

Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, его имя было изменено или временно недоступен. Просмотрите следующий URL-адрес и убедитесь, что он написан правильно.

Подробности: Запрошенный URL: / MyAPI / Home / Index

Я должен добавить, что он отлично работает при отладке с помощью MonoDevelop с использованием XSP4, поэтому я считаю, что это проблема конфигурации, а не проблема кода.

Моя конфигурация nginx:

server {
    listen 80;
    root /var/www/MyAPI/;
    server_name MyAPI;

    location / {
        fastcgi_pass 127.0.0.1:9000;
        include /etc/nginx/fastcgi_params;
    }
}

Я пробовал использовать как файл webapp, так и просто набирал все это в командной строке.

<apps>
<web-application>
    <name>MyAPI</name>
    <vhost>*</vhost>
    <vport>80</vport>
    <vpath>/</vpath>
    <path>/var/www/MyAPI/</path>
</web-application>
</apps>

Затем в командной строке я пробовал:

fastcgi-mono-server4 /applications=/MyAPI:/var/www/MyAPI/ socket=tcp:127.0.0.1:9000

И

fastcgi-mono-server4 --appconfigdir=/etc/webapps socket=tcp:127.0.0.1:9000

Что мне здесь не хватает? У кого-нибудь есть решение этого?

Оказывается, проблема была вызвана использованием параметра «Предварительная компиляция» при публикации веб-API. Когда я попытался опубликовать приложение без предварительной компиляции, все прошло гладко.