IIS7 RewritePath-und IIS-log-Dateien

Bin ich mit dem Kontext.RewritePath() in ASP.NET 3.5 Anwendung auf IIS7.

Tue ich es in der Anwendung BeginRequest-Ereignis und alles funktioniert Datei.

Anforderungen für /Sport-korrekt umgeschrieben Standard.aspx?id=1, und so weiter.

Das problem ist, dass in meinem IIS log sehe ich Anfragen BEKOMMEN für /Default.aspx?id=1 und nicht für /Sport.

Diese Art von code funktionierte perfekt unter IIS6.

Mithilfe von Microsoft Rewrite-Modul ist keine option, aufgrund von einigen business-Logik umgesetzt werden.

Dank.

EDIT:

Es scheint, mein handler ist zu früh in der pipeline, aber wenn ich mich bewege die Logik zu einem späteren Zeitpunkt, als das ganze umschreiben, was nicht funktioniert (es ist zu spät, StaticFileHandler nimmt meine Anfrage).

Habe ich gegoogelt und gegoogelt, fragte herum, kann nicht glauben, dass niemand dieses problem hat?

EDIT:

Huch! Hier ist was ich gefunden habe auf dem IIS-forum:

"Das ist, weil die im integrierten Modus von IIS und asp.net eine gemeinsame pipeline und die RewritePath jetzt gesehen, IIS, während in IIS6, es war noch gar nicht gesehen, die von IIS - Sie können dies umgehen, indem mit dem classic-Modus Verhalten würde wie IIS6."

Letzten update: Bitte werfen Sie einen Blick auf unten meine Antwort, ich habe aktualisiert es mit den Ergebnissen nach mehr als einem Jahr in der Produktionsumgebung.

  • Ich würde (und habe) nur auf das System blicken.Web.Routing-assembly via Reflektor. Um zu sehen, wo es Haken bis. IIRC, die Sie brauchen, um es in PostMapRequestHandler und PostAcquireRequestState.
  • Ich habe versucht, das, wie ich schrieb in meinem EDIT, aber das Ereignis ist zu spät in der pipeline...
  • Ich Las Ihre updates. Gibt es keine Möglichkeit, können Sie fügen Sie einen Ereignis-handler, der irgendwo in der Anwendung? Ich meine, der Antrag muss irgendwo enden. Meine Experimente mit custom umschreiben erwies sich auch als schwierig.
  • Ich habe versucht, fast alle Veranstaltungen. Entweder ich lose Protokollierung, entweder die Umschreibung ist zu spät, oder ich lockere session-Zustand... 🙁 ich kann nicht glauben, dass NIEMAND diese Probleme hatte?
  • Muerte, der richtige Weg, dies zu tun wäre, um Ihre eigene Frage zu beantworten. Sie erklärte, dass dieses Problem können Sie beheben indem Sie IIS 7 in classic-Modus, der die gleiche Weise wie IIS 6. Solange Sie erkennen, dass Sie nicht profitieren von den Sicherheits-oder performance-upgrades in die neue IIS 7 indem du dies tust, dann scheint es wie eine vernünftige Antwort.
  • Ich verstehe, dass ich Antwort auf meine eigene Frage, aber ich denke nicht, dass dies als Antwort an alle und ich bin immer noch der Verfolgung der Suche. 🙂 Ich bin versucht, einige Dinge, und ich werde auf jeden Fall mein Ergebnis, entweder als Antwort oder als ein letzter edit zu meiner Frage.

InformationsquelleAutor markom | 2008-12-09
Schreibe einen Kommentar