代码之家  ›  专栏  ›  技术社区  ›  Steven Evers

同一WCF服务的多个客户端终结点

  •  1
  • Steven Evers  · 技术社区  · 14 年前

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

    使用服务的客户机是一个在局域网上运行并通过互联网远程运行的应用程序。DNS服务器上没有任何转发重定向 http://www.corporate.com/Service http://serverName/Service 所以我想在客户机上需要2个端点。

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

    3 回复  |  直到 14 年前
        1
  •  2
  •   Eugene Cheverda    14 年前

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

    var endpoint = ApplicationSettings.IsRemote ? Resources.RemoteEndPoint: Resources.LocalEndPoint;
    var service = new MyWCFService(new BasicHttpBinding(), new Endpoint(endpoint));
    
        2
  •  2
  •   KeithS    14 年前

    应用程序的每个副本的app.config(或web.config)都应该根据需要设置服务的端点。对于LAN安装,使用LAN可见端点;对于所有其他端点,使用Internet端点。

    它可以为您节省一次路由器之旅,但为什么不在任何地方都使用Internet端点呢?如果您的局域网计算机有一个到网络的网关,它们可以看到外部可见的地址。

        3
  •  0
  •   Steve Danner    14 年前

    它与更改地址和使用app config中生成的端点一样简单。您可能需要更改安全模式,这取决于其中一个服务器支持什么,或者它们是否都在运行HTTPS。我们有一个应用程序,在该应用程序中,我们基于Silverlight应用程序中当前URL的相对路径构建目标端点。我们还动态地根据存在的HTTPS更改安全模式,它工作得很好。