多个客户端端点指向同一WCF服务

时间:2010-10-20 17:04:30

标签: c# wcf wcf-client

我在LAN IIS上运行了一个WCF服务,也可以从互联网上访问。

使用该服务的客户端是一个在LAN上运行并通过Internet远程运行的应用程序。 DNS服务器上没有转发任何内容将http://www.corporate.com/Service重定向到http://serverName/Service,所以我想在客户端上需要2个端点。

如何在客户端中设置多个端点(它是否像复制app.config中生成的现有enpoint一样简单但更改地址?)以及如何配置客户端以使用特定端点?

3 个答案:

答案 0 :(得分:2)

您可以在app.config或资源字符串中存储端点地址。然后使用任何条件将所需的端点地址传递给服务构造函数。

var endpoint = ApplicationSettings.IsRemote ? Resources.RemoteEndPoint: Resources.LocalEndPoint;
var service = new MyWCFService(new BasicHttpBinding(), new Endpoint(endpoint));

答案 1 :(得分:2)

应用程序的每个副本的app.config(或web.config)应该具有基于其所需服务集的端点。对于LAN安装,请使用LAN可见端点;对于所有其他人,请使用互联网。

它可以为您节省路由器之旅,但为什么不在任何地方使用互联网端点?如果您的LAN计算机具有到网络的网关,他们可以看到外部可见的地址。

答案 2 :(得分:0)

就像更改地址和使用app config中生成的端点一样简单。您可能必须更改安全模式,具体取决于任一服务器上支持的内容,或者它们是否都运行HTTPS。我们有一个应用程序,我们根据Silverlight应用程序中当前URL的相对路径构建目标端点。我们还根据存在的HTTPS动态更改安全模式,效果很好。