1 votes

Déploiement de l'API Web ASP.NET avec Mono et Nginx

J'essaie de déployer mon API Web depuis un certain temps, sans succès. Quelle que soit la manière dont je modifie mes configurations (en suivant les recommandations de mes recherches sur Google), je me heurte toujours à la même erreur frustrante :

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

Mon navigateur affiche une erreur 404.

Description : HTTP 404. La ressource que vous recherchez (ou l'une de ses dépendances) a pu être supprimée, son nom a été modifié ou elle est temporairement indisponible. Veuillez vérifier l'URL suivante et vous assurer qu'elle est correctement orthographiée.

Détails : URL demandée : /MyAPI/Home/Index

Je dois ajouter qu'il fonctionne correctement lors du débogage avec MonoDevelop en utilisant XSP4, c'est pourquoi je pense qu'il s'agit d'un problème de configuration plutôt que d'un problème de code.

Ma configuration nginx :

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

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

J'ai essayé à la fois d'utiliser un fichier webapp et de taper tout cela dans la ligne de commande.

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

Ensuite, en ligne de commande, j'ai essayé :

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

Et

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

Qu'est-ce qui m'échappe ? Quelqu'un a-t-il une solution à ce problème ?

1voto

Erik Karlstrand Points 121

Il s'avère que le problème est dû à l'utilisation de l'option Precompile lors de la publication de l'API Web. Lorsque j'ai essayé de publier l'application sans utiliser l'option Precompile, tout s'est déroulé sans problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X