Unser Shop integriert ASP.NET MVC in eine große Webanwendung, die benutzerdefinierte & 3rd-Party-HTTP-Handler verwendet, die in web.config unter system.webServer \ handlers definiert sind. Die Verwendung von HTTP-Handlern auf diese Weise war für uns großartig, weil wir die App nicht neu kompilieren müssen oder die tatsächliche Handler-Seite für jede Instanz des Produkts irgendwo auf dem Datenträger irgendwo im Web-Bereich liegen haben muss.Warum hat das ASP.NET-Routing Vorrang vor dem web.config-Http-Handler-Abschnitt?
Ist es wirklich notwendig explizite Ignoriere Routen in unserer global.asax hinzuzufügen, damit die Runtime unsere in web.config definierten Handler berücksichtigen kann? Ich hätte gedacht, Web.Routing würde aufgerufen werden nach die Handler in system.webServer \ Handler definiert wurden überprüft (nicht anders herum).
Wir verwenden ein modulares Design, das das Hinzufügen/Entfernen von Handlern aus web.config ermöglicht, wenn Features hinzugefügt werden. Mit der Einführung des MVC-Routings scheint es notwendig zu sein, in der global.asax-Datei für jeden in der Datei web.config definierten möglichen Handler Ignorier-Routen hinzuzufügen.
Beachten Sie, dass die eigentliche Datei für diese Handler nicht auf der Festplatte vorhanden ist - sie sind virtuell und in einer Assembly eingebettet. Hier ist ein Beispiel für eine 3rd-Party-Handler, der jetzt eine explizite Ignorieren Strecke in global.asax erfordert:
<system.webServer>
<handlers>
<!-- telerik radcontrols -->
<add name="TelerikDialogHandler" verb="*" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler, Telerik.Web.UI, Version=2009.1.402.20, Culture=neutral, PublicKeyToken=121fae78165ba3d4"></add>
</handlers>
</system.webServer>
Also für die Aufzeichnung, wenn Sie verwenden System.Web.Routing müssen Sie ignorieren die Routen für Http Handlers in Web angegeben sind: .Konfig? Oder mache ich etwas falsch?
Routing ist als HttpModule implementiert, so dass es immer vor der Auswahl von HttpHandler verarbeitet wird. –
Warum postest du das nicht als Antwort Ladislav, also wirst du von ihm repetieren. –