代码之家  ›  专栏  ›  技术社区  ›  to StackOverflow

使用行为动态更改WCF端点地址

  •  2
  • to StackOverflow  · 技术社区  · 14 年前

    我想根据客户机的应用程序配置文件中的自定义信息动态更改从客户机调用的WCF服务的地址。

    IEndpointBehavior.Validate 方法,实现如下内容:

    void IEndpointBehavior.Validate(ServiceEndpoint endpoint)
    {
        ... endpoint.Address = new EndpointAddress(...);
    }
    

    此方法在客户端尝试连接之前调用,并且似乎成功地更改了终结点地址。但是,WCF基础设施似乎仍然尝试使用原始地址进行连接。

    是否有任何方法可以通过端点行为或其他WCF扩展点来实现这一点?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Ladislav Mrnka    14 年前

    我认为问题在于通信对象的基本功能。当communication对象移动到Opened状态时,它不能更改任何内容。因此,如果您的通信对象(Channel或ChannelFactory)已处于打开状态,则无法更改地址。