关于使用Message Security时WCF客户端通道的生存期,我有一个问题,但首先,要对我公司的设置和指南进行一些说明:

  • 我们的客户端-服务器应用程序仅供内部网使用
  • 我们的客户是WPF应用程序
  • 我们公司有关WCF使用的准则是:
    • 使用wsHttpBinding
    • 使用邮件安全性
    • 服务实例模式:PerCall
    • 服务并发模式:多个

这是我第一次必须在Intranet设置上使用消息安全性。 通常,这是我使用客户端通道限制客户端和服务器上保留的资源数量的方法,而实际上只是为了简化操作:

  1. 实例化+开放渠道(使用ChannelFactory)
  2. 拨打WCF电话
  3. 尽快关闭/配置频道

在使用Fiddler 2监视此策略时,我注意到由于消息安全性, 单个WCF调用最终导致对我的服务的5次往返

  • 3次初始往返握手
  • 实际WCF呼叫1次往返
  • 1个调用以关闭会话(因为我使用的是PerCall,所以我认为这在IIS级别上更像是一个安全会话)

如我所料,如果我要关闭消息安全性,那么一个WCF最终将成为……一次往返。

到目前为止,我必须使用Message Security,因为这是我们的准则。 考虑到这一点,并知道我们在一个会话中从每个客户端WPF应用程序进行了数百次WCF调用,因此您是否建议打开客户端通道并使其保持打开状态以供重用,而不是每次都将其丢弃?

===============>>#1 票数:1 已采纳

我建议您不要抢先关闭功能,除非您知道它们是已知问题。 预优化是不必要的工作。 除非您注意到您的客户有滞后的问题,否则我不会担心邮件的安全性。 在这一点上,尝试一些事情:一种使客户保持更长时间开放的方法; 二,尝试将请求分组在一起而不关闭消息安全性; 第三,如果可以的话,考虑缓存; 第四,如果邮件安全是最终的罪魁祸首,请尝试其他方法。 我不会只是关闭某些功能,因为我看到了更多的网络流量,直到我知道这绝对是我可以提高性能的最后一件事。

  ask by Talisker translate from so

未解决问题?本站智能推荐: