Je ne sais pas si cela se produit dans un site Web MVC, mais je pense que je le mentionnerais de toute façon.HttpHandler personnalisé ne se déclenche pas, renvoyant 404 dans l'application ASP.NET MVC
Dans mon web.config j'ai ces lignes:
<add verb="*" path="*.imu" type="Website.Handlers.ImageHandler, Website, Version=1.0.0.0, Culture=neutral" />
dans le projet de site Web, j'ai un dossier nommé Handlers qui contient ma classe ImageHandler. Il ressemble à ceci (j'ai supprimé le code processRequest)
using System;
using System.Globalization;
using System.IO;
using System.Web;
namespace Website.Handlers
{
public class ImageHandler : IHttpHandler
{
public virtual void ProcessRequest(HttpContext context)
{
//the code here never gets fired
}
public virtual bool IsReusable
{
get { return true; }
}
}
}
Si je lance mon site et aller à /something.imu il retourne juste une erreur 404. J'utilise Visual Studio 2008 et j'essaie de l'exécuter sur le serveur de développement ASP.Net.
J'ai cherché pendant plusieurs heures et l'ai fait travailler dans un site Web vide séparé. Donc, je ne comprends pas pourquoi cela ne fonctionnera pas à l'intérieur d'un site Web existant. Il n'y a pas d'autres références au chemin * .imu btw.
Whoa belle, qui m'a mis dans la bonne direction! J'ai ajouté cette ligne dans la méthode RegisterRoutes qui empêchera MVC de gérer la requête: routes.IgnoreRoute ("{resource} .imu/{* pathInfo}"); – Peter
si vous voulez ignorer l'extension dans tous les chemins, utilisez routes.IgnoreRoute ("{* allimu}", new {allimu = @ ". * \. Imu (/.*)?"}); de phill haack http://haacked.com/archive/2008/07/14/make-routing-ignore-requests-for-a-file-extension.aspx/ – jsturtevant