【问题标题】:WCF Proxy Caching + runtime endpoint modificationWCF 代理缓存 + 运行时端点修改
【发布时间】:2013-12-30 14:59:54
【问题描述】:

我目前正在从事的项目中,我们有超过 30 个 wcf 服务,在我们的 Web 应用程序中被大量调用,我们遇到了性能问题,其中一个解决方案是缓存代理。所以我们所做的是创建一个字典对象并使用端点名称作为键,缓存通道工厂对象,以便后续调用将从缓存中提取,而不是在每次调用时重新实例化通道工厂对象。其他论坛上有很多实现。

但是我们遇到了一个问题,我们的系统设置方式是我们的服务驻留在一台或多台服务器上,其中任何时候只有一台处于活动状态,如果一台服务器发生故障,则另一台服务器用作故障保护.在放入缓存之前创建通道工厂时,我们可以获得给定服务的最新端点地址,然后实例化它。但是在这种情况下,如果服务器出现故障,我们从缓存中拉取通道工厂对象,它将引用旧的端点地址。

我在论坛上检查是否可以更新通道工厂对象中的端点地址,如果这是可行的,我可以更新缓存中的通道工厂对象并从那时起使用它,我认为这是不可能的.

我最近想出的唯一一件事是,我们检查一个可能的 404 错误异常,当一个旧的端点地址被命中时会发生,然后获取最新的端点地址并重新创建通道工厂,并在缓存。

如果你们有任何其他想法,会有所帮助。有点卡在这一点上。

【问题讨论】:

    标签: wcf caching proxy endpoint channelfactory


    【解决方案1】:

    您可以在不指定端点地址的情况下创建通道工厂,稍后将其传递给方法 CreateChannel:

    public TChannel CreateChannel(EndpointAddress address)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      相关资源
      最近更新 更多