WCF 关于自定义MessageHeader支持

分类: asp.net技巧   出处:iocblog整理  更新时间:2008-06-06   添加到收藏  
 我们在项目中有些公共信息可以不通过方法参数提供,将这些信息封装到messageheader,通过客户端提交给server。这种情况下我们需要注意wcf不同的实例模式、会话模式对header的支持情况:
  
  实力模式(instancecontextmode)percall、persession支持header,但是single不支持自定义header,表现是服务器无法获取header内容
  
  另外如果在servicecontract中启用会话模式(sessionmode)声明,那么sessionmode.noallowed、sessionmode.allowed两种模式下是可以接收到header的,但是sessionmode.required模式无法接收header,给我的感觉是session跟messageheader有冲突。
   [来源 www.iocblog.net]
  建议:instancecontextmode采用percall,而sessionmode采用noallowed;如果我们不做显示声明instancecontextmode默认采用persession,而sessionmode采用allowed
  
  在percall、persession、single三种模式中,percall是性能最高的,节省资源,支持系统的可伸缩性。由于服务实例的生命周期只存在于一次调用期间,特别对于那些持有昂贵资源的服务实例而言,这种方式可以有效地提高系统性能。销毁服务实例时,wcf不会断开与客户端的连接。
Tag: wcf



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。