views:

202

answers:

2

I am currently working on a silverlight client, making use of a web server, and an application server.

Most of the users sit within our firewall, so they do not have any problems accessing the WCF service running on the application server (through a Service.svc file).

However, some users will sit outside of our firewall, and only have access to the web server, and not to the application server (Where the WCF service is).

I am hoping someone could tell me if there is a way for the client to use the WCF service on the application server, through the web server, without rewriting the WCF service on the web server, and only relaying the calls through that server.

I hope this is a clear enough description of what I need.

Thanks

+2  A: 

Sounds like what you want is a router service. Unfortunately, there's nothing built-in into WCF to do that (at least until .NET 4.0 with its RoutingService.).

You can certainly build it yourself, either by building a specific, one-off routing service (i.e. you implement the same contract and manually forward each operation to the service inside the firewall), or by building a generic, reusable routing service.

If you choose the second option, a couple of articles might help get you started.

tomasr
A: 

Rather than have your Silverlight clients accessing the application server directly, route all the requests through a proxy service on the web server.

An example of this is the "Cross Domain Proxy" pattern.

Rick