Frage

Ich versuche, sowohl „aspx“ und Nicht-Erweiterung Seite Anfragen zu verarbeiten (das heißt sowohl contact.aspx und / Kontakt /) einen benutzerdefinierten Httphandler in IIS7 verwenden. Mein Handler funktioniert gut entweder in einem Fall oder den anderen, aber sobald ich versuche, beiden Fälle zu bearbeiten, es funktioniert nur für einen. Bitte sehen Handlers Schnipsel aus meinem web.config unter:

Wenn ich nur immer wieder zuordnen zu „* aspx“ dann werden alle ASPX-Anfragen korrekt verarbeitet, aber offensichtlich erweiterungs Anfragen wird nicht funktionieren:

<add name="AllPages.ASPX" path="*.aspx" verb="*" type="Test.PageHandlerFactory, Test" preCondition="" />

Wenn ich ändern um die Zuordnung zu „*“ werden alle erweiterungs Anfragen korrekt verarbeitet werden, sondern „aspx“ Anforderungen, die immer noch von diesem Handler funktionieren nicht behandelt werden sollte. Beachten Sie, dass ich den Eintrag Static zu verarbeiten, um Dateien hinzugefügt, die wie Bilder auf der Festplatte sind, CSS, JS, usw.

<add name="WebResource" path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" />
<add name="StaticFiles" verb="GET,HEAD" path="*.*" type="System.Web.StaticFileHandler" resourceType="File" />
<add name="AllPages" path="*" verb="*" type="Test.PageHandlerFactory, Test" preCondition="" />

Das Verrückte ist, dass, wenn ich eine „aspx“ Anfrage laden (mit der zweiten Konfiguration gezeigt) IIS7 einen Fehler 404 nicht gefunden gibt. Der Fehler sagt auch, dass der Antrag von der Static Handler verarbeitet wird. Aber ich habe sicher resource = „Datei“ auf die StaticFileHandler zu geben, um dies zu vermeiden. Nach MS bedeutet dies die Anforderung nur für „physische Dateien auf der Festplatte“. Ich bin Verlesen / den „auf der Festplatte“ Teil zu interpretieren?

Meine ASPX-Datei ist nicht auf der Festplatte, deshalb habe ich den Handler in erster Linie verwendet werden soll.

War es hilfreich?

Lösung

Die zweite Konfiguration verursacht * .aspx- StaticFileHandler behandelt bekommen, da die Dateien existieren, so dass sie die Kriterien für die Handler erfüllen. Jedoch wird der Handler konfiguriert diese Dateien nicht zu dienen und erzeugt eine 404-Nachricht statt.

Eine bessere Lösung wäre eine Httpmodule Implementierung verwenden wie

scroll top