J'ai une application qui a démarré comme une application MVC (1.0) dans Visual Studio 2008 Sp1 avec un tas de projets Silverlight 3 dans le cadre du site . Rien d'extraordinaire. Utilisation de Ninject pour l'injection de dépendance (première version bêta 2, maintenant la version 2 avec les extensions MVC). Avec la sortie de .Net 4.0, VS2010, MVC2, etc., nous avons décidé de déplacer l'application vers la toute dernière plate-forme. L'assistant de conversion dans VS2010 a apparemment pris soin de tout, à une exception près - il n'a pas changé les références à mvc1 pour maintenant pointer sur mvc2, donc je devais le faire manuellement. Bien sûr, cela me fait penser à d'autres choses MVC2 qui pourraient manquer à mon application, ce serait là si je faisais Fichier -> Nouveau Projet ... Mais ce n'est pas l'objet de cette question.Déploiement de l'application MVC2 sur IIS7.5 - Ninject a demandé de fournir des contrôleurs pour les fichiers de contenu
Lorsque je déploie cette application sur le serveur IIS 7.5 (sous Win2008 R2 x64), l'application fonctionne en tant que telle. Cependant, les images, les scripts et autres contenus statiques ne semblent pas exister. Bien sûr, ils sont là sur le disque sur le serveur, mais ils n'apparaissent pas dans le navigateur Web du client. Je suis assez nouveau à IIS, donc le seul truc que j'ai connu est d'essayer d'ouvrir la page web dans un navigateur sur le serveur, car cela pourrait me donner plus d'informations. Et ici, enfin, nous rencontrons notre ennemi. Si j'essaye d'aller directement à l'URL de l'une des images (http://server/Content/someimage.jpg par exemple), j'obtiens l'erreur suivante dans le navigateur:
L'IControllerFactory 'Ninject.Web.Mvc.NinjectControllerFactory' n'a pas retourné un contrôleur pour un contrôleur nommé "Contenu".
Aha. Le serveur Web essaie de transmettre cette requête à MVC qui, avec son paramétrage de routage par défaut, considère que Content est un contrôleur et échoue.
Comment puis-je l'obtenir pour traiter Content/et Scripts/(entre autres) en tant que non-contrôleurs et juste passer à travers le contenu statique? Cela fonctionne bien sûr avec Cassini sur ma machine de développement, mais dès que je déploie, ce problème frappe.
J'utilise la dernière version de Ninject MVC 2 où l'outil IoC devrait transmettre les contrôleurs manquants à la base du contrôleur de base, mais cela n'a apparemment pas aidé. J'ai également essayé d'ajouter des routes ignorées pour le contenu etc., mais cela n'a apparemment aucun effet non plus. Je ne suis même pas sûr d'aborder le problème au bon niveau.
Est-ce que quelqu'un sait où chercher pour obtenir cette application? J'ai le plein contrôle du serveur web, donc je peux faire plus ou moins ce que je veux, tant que ça commence à fonctionner.
Merci!
Et quels étaient les droits appropriés? Juste accorder lecture pour le compte en cours d'exécution du pool d'applications? –