Je suis à la fin de mon esprit. J’essaie d’exécuter un site Web ASP.NET MVC 3 sous Mono via FastCGI et le gestionnaire HTTP pour Cassette ne s’enregistrera pas correctement. Le site est http://www.tychaia.com/ .
La chose étrange est:
xsp4
sur la machine de production. fastcgi-mono-server4
sur la machine de production. Les choses que j’ai essayées:
C’est cette entrée Web.config particulière:
( https://github.com/hach-que/Tychaia/blob/master/Tychaia.Website/Web.config#L47 )
Pour autant que je sache, j’ai deux problèmes à l’origine de ce problème:
cassette.axd
, même si elle est clairement spécifiée à l’ adresse https://github.com/hach-que/Tychaia/blob/master/Tychaia.Website/Global.asax.cs#L20 (et fonctionne sous plaine XSP4). Quand j’ajoute un IgnoreRoute explicite pour la chaîne “cassette.axd” (en faisant routes.IgnoreRoute("cassette.axd");
), lo-and-behold, il commence à passer au gestionnaire, sauf: cassette.axd
et même dans ce cas, il semble que le gestionnaire ne possède aucune information de chemin.
elles sont également traitées par le gestionnaire, mais elles ne le sont pas. t répondre comme il se doit normalement à cette URL; vous obtenez simplement la valeur par défaut comme s’il n’y avait pas de parameters d’URL supplémentaires (ils sont peut-être consommés par la correspondance du chemin du gestionnaire HTTP). La façon dont FastCGI est actuellement configuré est la suivante:
Encore une fois, ce problème ne se produit pas sous XSP4, il se produit uniquement sous FastCGI. Bien que je puisse inverser le proxy sur une instance XSP4, j’hésite à le faire pour des raisons de performances.
Y a-t-il autre chose que je pourrais manquer ici?
EDIT: Voici quelques URL qui devraient fonctionner. Comme vous pouvez le voir, ils frappent le StaticFileHandler au lieu du gestionnaire HTTP de la cassette:
Et vous pouvez voir que avec IgnoreRoute spécifié explicitement, le chemin cassette.axd
mappe, mais seulement ce chemin:
Cela ne fonctionne pas si vous mettez une barre oblique à la fin soit:
EDIT 2: J’ai mis à jour le site pour /Content/main.css
un lien vers le fichier /Content/main.css
afin que le site apparaisse correctement lorsque ce problème est sortingé. Si vous vérifiez les demandes du réseau dans votre navigateur, vous verrez les demandes échouées aux ensembles de cassettes.
J’ai déposé un bug sur le traqueur de bogues de Mono, en espérant avoir une réponse à la question:
https://bugzilla.xamarin.com/show_bug.cgi?id=12190
MISE À JOUR: J’ai trouvé la cause du problème. Sous OpenSUSE, mono et XSP sont conditionnés séparément. Même si j’ai mis à niveau Mono vers la version 3.0.10, XSP / FastCGI est toujours resté à la version 2.10.2.0. Lorsque j’ai mis à niveau le package XSP / FastCGI vers 2.11.0.0, le problème a disparu.