Verhindert, dass der statische Dateihandler dateinamenähnliche URLs abfängt

In meiner Webanwendung habe ich eine Route, die so aussieht:

routeCollection.MapRoute(
    "AdfsMetadata",                                                // name
    "FederationMetadata/2007-06/FederationMetadata.xml",           // url
    new { controller = "AdfsController", action = "MetaData" });   // defaults

Die Idee hinter dieser Route war, besser mit dem Microsoft AD FS-Server (2.0+) zusammenzuarbeiten, der an dieser Stelle nach AD FS-Metadaten sucht, wenn Sie nur einen Hostnamen angeben. Mit MVC3 hat alles gut funktioniert. Wir haben das Projekt kürzlich auf MVC4 aktualisiert und jetzt führt der Aufruf dieser URL zu einem 404, wie der auf der Fehlerseite erwähnte Handler lautetStaticFile und der physische Weg istD:\path\to\my\project\FederationMetadata\2007-06\FederationMetadata.xml. Ich gehe davon aus, dass MVC oder ASP.NET "denkt", dass es eine Anforderung für eine statische Datei sein muss und nach der Datei sucht, aber es ist keine Datei. Die Daten werden dynamisch generiert - deshalb habe ich die URL an eine Controller-Aktion weitergeleitet. Das Problem ist, dass selbst der Route Debugger von Phil Haack nicht funktioniert. Es ist nur ein 404 ohne weitere Informationen, außerdem hat IIS versucht, auf eine physische Datei zuzugreifen, die nicht vorhanden ist.

Hat jemand eine Lösung dafür? Ich möchte nur, dass diese URL an eine Controller-Aktion weitergeleitet wird.

P .: Ich binnicht 100% Stellen Sie sicher, dass die Ursache das Upgrade auf MVC4 war. Es war nur eine Vermutung, da der Fehler ungefähr zur selben Zeit wie das Upgrade auftrat und die gleiche Route in einem anderen Projekt funktioniert, das noch MVC3 verwendet.

Bearbeiten:

Ich habe eine SitteControllerFactory welches den vollen Klassennamen benötigt (AdfsController anstattAdfs), also das SuffixController ist in diesem Fall richtig.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage