Ich habe für ein paar Stunden googlen und basteln und habe nicht wirklich viel Fortschritte gemacht, so dass hoffentlich jemand hier helfen kann.ASP.NET MVC Route: umgehen staticfile Handler für Pfad
Ich versuche, alle Anfragen zu einem bestimmten Pfad von einer Drittanbieter-Komponente behandelt werden.
EDIT Und ich brauche alle Anforderungen an alle anderen Pfade, um normal zu verhalten.
Ich verwende eine Route-Handler mit einem Wildcard-Mapping wie folgt aus:
routes.Add(new Route("pathiwant/{*EverythingElse}", new MyRouteHandler()));
Alle traditionellen Routen nach vorne richtig an den Handler, der schön auf die 3rd-Party-Komponente weiterleitet. Wenn ich auf statische Dateien (.html, .txt usw.) stoße, werden sie vom StaticFile-Handler statt von meinem Handler abgeholt. Daher versuche ich, den StaticFile-Handler wie folgt zu deaktivieren (vereinfacht):
<system.webServer>
<handlers>
<remove name="StaticFile"/>
</handlers>
</system.webServer>
Dies deaktiviert den StaticFile-Handler, aber MVC nimmt die Route immer noch nicht auf.
Ich würde lieber nicht auf die Erstellung meiner eigenen Handler und injizieren in den ASP-Anfrage-Stack zurückgreifen, da es scheint, dass es eine MVC-glücklich sein sollte, dies zu tun.
Irgendwelche Gedanken? Und danke.
Dank. Es ist definitiv etwas, was ich ausprobiert habe, aber ich möchte, dass alle anderen Pfade normal behandelt werden. Es scheint wirklich so zu sein, als gäbe es keinen MVC-Weg, um das zu tun, und ich sollte einfach den Handler vor MVC aufschlüsseln und hinzufügen. – jmoss
Nicht sicher über die Besonderheiten von genau das, was Sie wollen und nicht behandeln möchten, aber ja, um die Dinge in MVC die asp.net-Rohr müssen alle entsprechenden Anfragen erhalten. –
WICHTIGER HINWEIS: '' gilt nur für Anwendungspools, die eine integrierte Modus-Pipeline ausführen. Dies funktioniert nicht für App-Pools, die im klassischen Modus ausgeführt werden. –
BenSwayne