chemin du contrôleur introuvable pour les images statiques? asp.net problème de routage mvc?

J’ai un dossier d’images stocké dans ~ / Contenu / Images /

Je charge ces images via

 

Récemment, les images ne se chargent pas et les erreurs suivantes apparaissent dans mon journal des erreurs. Ce qui est étrange, c’est que certaines images se chargent très bien, alors que d’autres ne se chargent pas.

Quelqu’un a une idée de ce qui ne va pas avec mes itinéraires? Me manque-t-il un itinéraire ignoré pour le dossier / Content /?

Je reçois également la même erreur pour favicon.ico et un tas d’autres fichiers image …

  -- 3/25/2010 2:32:38 AM -- System.Web.HttpException: The controller for path '/Content/Images/box_bottom.png' could not be found or it does not implement IController. at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(Type controllerType) at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, Ssortingng controllerName) at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

Mes itinéraires actuels ressemblent à ceci:

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults ); routes.MapRoute( "ControllerDefault", // Route name "{controller}/project/{projectid}/{action}/{searchid}", // URL with parameters new { controller = "Listen", action = "Index", searchid = "" } // Parameter defaults ); 

Merci!

J’insérerais une autre route ignorée immédiatement sous la première.

 routes.IgnoreRoute("Content/Images/{*pathInfo}"); 

Si vous examinez la vue de votre explorateur de solutions, je suppose que votre dossier de contenu se trouve à la racine du projet, avec un dossier pour les contrôleurs et les vues. Essayez de modifier votre image src comme indiqué ci-dessous …

  
 " alt="does this work?" /> 

Vous devez déclarer des itinéraires moins spécifiques vers le bas:

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "ControllerDefault", "{controller}/project/{projectid}/{action}/{searchid}", new { controller = "Listen", action = "Index", searchid = "" } ); routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" } ); 

Mais je ne pense pas que ce soit le problème ici. À l’exception de ce qui précède, il semble que le serveur Web exécutant cette application dispose d’un mappage générique avec le filtre aspnet_isapi ce qui signifie que tous les fichiers seront associés au runtime ASP.NET, y compris les fichiers statiques.

Vous n’avez pas routes.RouteExistingFiles = true; quelque part vous

L’exception ... could not be found or it does not implement IController pas. ... could not be found or it does not implement IController ne ... could not be found or it does not implement IController être en erreur. En réalité, /favicon.ico résout pas en contrôleur, cela signifie donc que le module suivant (ou son gestionnaire?) Doit essayer de gérer la requête. Donc, dans un sens, c’est une “exception attendue”.

Le problème vient du moment où cette exception est enregistrée et obstrue les journaux. Lorsque vous utilisez log4net, l’ajout de l’élément à l’appender par défaut devrait le garder en dehors: