I
Ich konnte nun die Ursache für das oben beschriebene Phänomen lokalisieren:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home",action = "Index",id = UrlParameter.Optional } // Parameter defaults
);
Dies führt offenbar dazu, dass URL's bis zu drei slashes irgendwie in ASP .NET geroutet wird, während alles andere auf den staticHandler gemappt wird.
Ich dachte aber, dass der IntegratedMode genau dafür sei, dass bei diesem die ManagedModule auch für nicht ASP. NET Handler aufgerufen werden?
Also eigentlich habe ich nur folgende IMHO sehr einfache Anforderung:
Ich möchte, dass sämtliche URL's die mit /dav/ beginnen, von einem spezifischen IHttpHandler ausgeführt werden, unabhängig, ob die Resource existiert oder nicht. Zuerst habe ich es mit einem Handlereintrag in web.config versucht, doch das scheiterte, weil er da offenbar nur auf die Dateiendung achtet, was nicht ausreicht. Danach versuchte ich es mit einem IHttpModule, welches den PostMapRequestHandler abfängt und mein Handler zuweist, wenn der Pfad mit /dav/ beginnt. Dies funktioniert nun offenbar auch nicht, weil das Modul nicht immer aufgerufen wird. Schliesslich versuchte ich es mit dem Asp .Net Routing, was aber auch nicht funktioniert, da dieser offenbar darauf beschränkt ist, URL Tokens in Get Parameter umzuwandeln.
Also WTF? :p Was ich da vorhabe ist doch Mein Gott nicht so weltfremd?
Mfg Samuel
Das kann doch nicht so schwer sein?