¿Por qué esta llamada de IgnoreroUruee coincide con estas solicitudes?
-
12-12-2019 - |
Pregunta
Tengo una localización Httphandler que se está ejecutando en el contexto de mi carpeta de contenido ASP.NET MVC2 (parte de lo que está haciendo es compilar archivos sin demora en / contenido / CSS). Mi ruta predeterminada para este conjunto particular de solicitudes se ve así:
context.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
context.MapRoute(
"Area_default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new { controller = new VirtualDirectoryConstraint("VDirectory1") },
new string[] { "Namespace.One.MVC" }
);
(como un lado - No creo que sea relevante, pero en caso de que los rechazos de VirtualDirectoryConstrain se coinciden en esta ruta si la solicitud no viene de la ruta de aplicación / directorio virtual pasada)
Con esta configuración, una llamada a http://server.net/VDirectory1/Content/css/LessCompiler.axd
falla porque no hay una clase CONTENTCONTROLLER. Todo bien y bueno.
cuando agrego
context.Routes.IgnoreRoute("{Content}/{*pathInfo}");
esa llamada tiene éxito, pero las llamadas posteriores a
http://server.net/VDirectory1/Localization/ClientScript/en-US.js
y
http://server.net/VDirectory1/Authorization/ClientScript
fallar. Mirando la herramienta Rutadedebugger de Phil Haack, esas llamadas están coincidiendo con la ruta del contenido de Ignoreroute:
True {Content}/{*pathInfo} (null) (null) (null)
y, por lo tanto, no se están enrutando al concontrolizador de localización y el controlador de autorización, respectivamente.
Claramente, estoy malentendido algo sobre cómo se supone que se debe usar la ignororía de la ignororía y por qué ese Ignoreroute en particular está coincidiendo con esas solicitudes. ¿Qué estoy perdiendo?
Solución
¿No debería su ignorción de IGNOREROUTE use Content
en lugar de {Content}
?
context.Routes.IgnoreRoute("Content/{*pathInfo}");
En este momento, es probablemente {Content}
, probablemente se está expandiendo como una variable a la nada, lo que hace que el pathinfo coincida con todo.