Я уже довольно давно безуспешно пытаюсь развернуть свой веб-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. Когда я попытался опубликовать приложение без предварительной компиляции, все прошло гладко.