2009-07-27 4 views
1

Ich arbeite derzeit an einem Silverlight-Client, der einen Webserver und einen Anwendungsserver verwendet.Umleiten der Verbindung über den Service.svc-Proxy

Die meisten Benutzer sitzen innerhalb unserer Firewall, sodass sie keine Probleme beim Zugriff auf den WCF-Dienst haben, der auf dem Anwendungsserver ausgeführt wird (über eine Datei Service.svc).

Einige Benutzer sitzen jedoch außerhalb unserer Firewall und haben nur Zugriff auf den Webserver und nicht auf den Anwendungsserver (wo der WCF-Dienst ist).

Ich hoffe, jemand könnte mir sagen, ob es eine Möglichkeit für den Client gibt, den WCF-Dienst auf dem Anwendungsserver über den Webserver zu verwenden, ohne den WCF-Dienst auf dem Webserver neu zu schreiben und die Aufrufe nur weiterzuleiten dieser Server.

Ich hoffe, das ist eine klare Beschreibung dessen, was ich brauche.

Danke

Antwort

3

Klingt wie, was Sie wollen, ist ein Router-Service. Unglücklicherweise ist in WCF dafür nichts eingebaut (zumindest bis .NET 4.0 mit seiner RoutingService.).

Sie können es natürlich selbst erstellen, indem Sie entweder einen spezifischen One-Off-Routing-Service aufbauen (dh Sie implementieren den gleichen Vertrag und leiten jede Operation manuell an den Service innerhalb der Firewall weiter) oder erstellen ein generisches, wiederverwendbares Routing Bedienung.

Wenn Sie die zweite Option wählen, könnte ein couple von articles Ihnen den Einstieg erleichtern.

0

Anstatt dass Ihre Silverlight-Clients direkt auf den Anwendungsserver zugreifen, leiten Sie alle Anforderungen über einen Proxy-Dienst auf dem Webserver weiter. Ein Beispiel dafür ist das Muster "Cross Domain Proxy".