我目前正在使用Silverlight客户端,使用Web服务器和应用程序服务器。
大多数用户都位于我们的防火墙内,因此他们在访问应用程序服务器上运行的WCF服务时没有任何问题(通过Service.svc文件)。
但是,有些用户会坐在我们的防火墙之外,只能访问Web服务器,而不能访问应用程序服务器(WCF服务所在的位置)。
我希望有人可以告诉我,客户端是否有办法在应用服务器上通过Web服务器使用WCF服务,而无需在Web服务器上重写WCF服务,并且仅通过该服务中继呼叫服务器
我希望这清楚地描述了我的需要。
由于
答案 0 :(得分:3)
听起来你想要的是路由器服务。不幸的是,WCF没有内置任何内容(至少在.NET 4.0及其RoutingService之前。)。
您当然可以通过构建特定的一次性路由服务(即您实现相同的合同并手动将每个操作转发到防火墙内的服务)或通过构建通用的可重用路由服务来自行构建它
答案 1 :(得分:0)
不是让您的Silverlight客户端直接访问应用程序服务器,而是通过Web服务器上的代理服务路由所有请求。
这方面的一个例子是“Cross Domain Proxy”模式。