2009-07-27 11 views
1

Ich habe zwei Anwendungen mit ASP.NET MVC, jeweils mit mehreren Controllern.IIS - ASP.NET MVC-Umleitung

Ich möchte eine Umleitung von Anwendung A zu Anwendung B durchführen, aber nur für eine einzelne Route auf Anwendung A (ein Controller).

Eg.

/applicationA/Ausgabe/* zu/applicationB/Ausgabe umleiten sollte/

/applicationA/Qualität/sollte nicht umleiten

Die Beispiele für IIS-Umleitung zeigen mir Beispiele, wie auf eine Datei klicken/Ordner und aktiviere Umleitung, aber ich versuche eine Route zu machen, keinen physischen Pfad.

Ich möchte die ASP.NET-Quelle (wenn überhaupt möglich) nicht ändern.

Danke.

bearbeiten - das ist in IIS6 auf Win2k3.

Antwort

1

Ja, das letzte Bit ist ein echter Vorbehalt. Wenn dies auf IIS7 wäre, wäre es 100% einfacher!

Sie könnten eine andere App herunterladen, um die Weiterleitung zu erledigen, aber dann wäre es nicht schwer, die MVC-App zu bearbeiten. Angenommen, dass/issue/and/quality/unterschiedliche Routen sind, warum nicht einfach so etwas tun:

public class MyController 
{ 
    public RedirectResult Issue() 
    { 
    //return as a redirect 
    return Redirect("http://applicationb/issue"); 
    } 

    public ActionResult Quality() 
    { 
    //This is here to show that, instead of redirecting, it returns a view. 
    return View(); 
    } 
} 
+0

Ich hatte gehofft, es auf der IIS-Ebene zu tun, so dass es für jeden offen war, der sich das Management-Tool ansah. Wenn ich auf UrlRewriting schaue, sehe ich nicht den Vorteil, es zu benutzen, nur meine MVC-Routen zu ändern, was wie die Antwort aussieht. – anonymous

+0

Die Route wurde an den Anfang der Liste hinzugefügt und dann eine Aktion, die ein neues RedirectResult zurückgibt. IIS7 scheint dies zu beheben, aber es war einfach einfacher in ASP.NET und IIS5/6. – anonymous

+0

Ich bin froh, dass ich helfen konnte! –

1

Sie könnten URLRewriting.NET verwenden, um die Umleitung basierend auf einem Regex-Muster durchzuführen.

+0

stimme ich zu. Als Lösung für IIS6 ist UrlRewriting.NET wahrscheinlich das Beste, was es gibt. @Michael, die URL, die du der Antwort hinzufügen möchtest, ist http://urlrewriting.net/149/en/home.html. –

+0

@dan - Danke, ich habe den Link hinzugefügt! –