Frage

Ich hatte geplant, url Routing für eine Web Forms-Anwendung zu verwenden. Aber nach der Lektüre einige Beiträge ich bin nicht sicher, ob es ein einfacher Ansatz ist.

Ist es besser, das URL Rewrite-Modul zu verwenden für Web-Formulare? Aber es ist nur für IIS7. Anfangs gab es einige Summen, dass URL-Routing völlig von Asp.Net MVC entkoppelt ist und es könnte für Web-Formulare verwendet werden.

Würde gerne Anregungen hören ..

War es hilfreich?

Lösung

Es gibt einen hier über die Unterschiede zwischen den beiden von einem Mitglied des IIS-Team.

Eine Einschränkung rate ich möchte ist, dass für WebForms, müssen Sie vorsichtig sein, wenn Routing verwenden. Ich habe eine Beispielimplementierung geschrieben, wie Sie verwenden würden Routing mit WebForms , die diese Bedenken und hoffentlich Adressen hilft, Ihre Frage zu beantworten.

Andere Tipps

Dies ist der beste Artikel, den ich zu diesem Thema gefunden: IIS URL-Rewriting und ASP.NET-Routing von Ruslan Yakushev.

IIS URL Rewriting

Wenn ein Client eine Anfrage an den Web-Server für eine bestimmte URL macht, die URL-Rewriting Komponente analysiert die angeforderte URL und ändert es in eine anderen anderen URL auf demselben Server. Die URL-Rewriting-Komponente läuft sehr früh in der Anforderungsverarbeitungspipeline, so in der Lage ist, die angeforderte URL zu ändern, bevor der Webserver eine Entscheidung über die Handler für die Bearbeitung des Antrags zu bedienen ist.

IIS URL Rewriting

ASP.NET-Routing

ASP.NET-Routing wird als Managed-Code-Modul implementiert, die an der Resolve Cache-Stufe (PostResolveRequestCache Ereignis) und auf der Karte Handler Stufe (PostMapRequestHandler) die IIS-Anforderungsverarbeitungspipeline-Stecker in. ASP.NET-Routing konfiguriert ist für alle Anforderungen an die Web-Anwendung zum Laufen gebracht.

IIS URL Routing

Die Unterschiede zwischen dem URL-Rewriting und ASP.NET-Routing:

  1. URL-Rewriting wird verwendet, URL-Pfade zu manipulieren, bevor die Anforderung vom Webserver behandelt wird . Das URL-Rewriting-Modul weiß nichts über das, was Handler wird die neu geschrieben URL schließlich verarbeitet. Darüber hinaus können die tatsächlichen Request-Handler nicht wissen, dass die URL neu geschrieben wurde.
  2. ASP.NET-Routing wird verwendet, um Versand eine Anfrage an einen Handler auf dem angeforderten URL-Pfad basiert . In Bezug auf URL Umschreiben Gegensatz kennt die Routing-Komponente über Handler und wählt die Behandlungsroutine, die eine Antwort für die angeforderte URL erzeugen sollte. Sie können als erweiterte Handler-Mapping-Mechanismus von ASP.NET-Routing denken.

Neben diesen konzeptionellen Unterschiede gibt es einige funktionelle Unterschiede zwischen IIS URL-Rewriting und ASP.NET-Routing:

  1. Die IIS URL-Rewrite-Modul kann mit jeder Art von Web-Anwendung verwendet werden, die ASP.NET, PHP, ASP und statische Dateien enthält. ASP.NET-Routing kann nur mit .NET Framework-basierten Web-Anwendungen verwendet werden.
  2. Das IIS URL-Rewrite-Modul funktioniert auf die gleiche Art und Weise unabhängig davon, ob integriert oder klassischer IIS-Pipeline-Modus für den Anwendungspool verwendet wird. Für ASP.NET-Routing ist es vorzuziehen, integrierten Pipelinemodus zu verwenden. ASP.NET-Routing kann im klassischen Modus arbeiten, aber in diesem Fall der Anwendung URLs müssen Dateierweiterungen oder die Anwendung umfassen muss konfiguriert werden, verwenden „*“ Handler Mapping in IIS.
  3. Die URL-Rewrite-Modul können Entscheidungen auf Basis von Domain-Namen, HTTP-Header, und Server-Variablen machen neu zu schreiben. Standardmäßig arbeitet ASP.NET-Routing nur mit URL-Pfaden und mit dem HTTP-Methode Header.
  4. Zusätzlich zum Umschreiben kann die URL-Rewrite-Modul HTTP-Umleitung durchführt, Ausgabe benutzerdefinierte Statuscodes und Anfragen abbrechen. ASP.NET-Routing nicht, diese Aufgaben erfüllen.
  5. Das URL-Rewrite-Modul ist in der aktuellen Version nicht erweiterbar. ASP.NET-Routing ist vollständig erweiterbar und anpassbar.

Wollen Sie formatiert Urls eine Fabrik für Laich Seiten sein?

oder tun Sie das machen wollen weg ASPX- gehen?

Umschreiben, ist die für die Herstellung von ASPX weggehen, oder einfach nur die URL aufzuräumen.

Routing, ist bei einem Antrag auf der Suche und bestimmen, welches Objekt sollte damit umgehen. Sie klingen ähnlich, phil haack ein paar guten Artikel zum Thema hat.

in iis6, isapiRewrite, ist sehr gut

Vor kurzem hat ich gerade geschrieben habe mein eigenes Umschreiben System die URLs auf meinen Seiten besser aussehen zu lassen. Im Grunde, Sie gehen zu müssen Ihre eigenen IHttpModule und fügen sie es zu Ihrem web.config eingehenden Anfragen abfangen. Sie können dann die HttpContext.Current.RewritePath verwenden zu ändern, was Sie deutete auf.

Sie wollen auch Ihre Website die aspnet_isapi für alles verwenden.

Sie werden viele kleine Probleme auf dem Weg entdecken wie der Versuch, mit Seiten zu arbeiten, die „Schwänze“ auf sie (wie Pagemethods) oder Wegfindung von Seitenelementen und bilden Postbacks verwenden, aber Sie werden durch sie erhalten .

Wenn Sie interessiert sind, kann ich einen Link zu dem Code und Sie können check it out. Ich habe viele der Probleme ausgearbeitet bereits so kann man durch sie lesen können, wie Sie gehen. Ich bin sicher, dass viele andere Menschen gibt, die dies auch getan haben, dass auch gute Ressourcen sein könnte.

Sie möchten meine auf diese Frage beantworten : ASP.NET - Ihr eigenes Routing-System Gebäude. Ich schließe einige gute Referenzen zu helfen, Ihr eigenes Routing-System zu bauen mit entweder dem URL-Rewriting-Methode oder das neue Routing-Engine, die Sie, dass kamen aus dem ASP.NET MVC-Projekt verwenden können.

Das Dynamic Data-Projekt, das mit .NET 3.5 SP1 verfügbar ist zeigt ein gutes Beispiel für eine URL-Routing-Implementierung.

Für URL auf IIS Umschreiben, IIRF in IIS5 arbeitet, 6, 7. Free. Einfach. Schnell. Open Source. Unterstützung für reguläre Ausdrücke.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top