最近我一直在努力WCF应用程序,并需要一些功能,以压缩肥皂消息体,这样尺寸的响应从服务应该减少。

经过一些研究,我找到一个实现可在网上从http://weblogs.asp.net/cibrax/archive/2006/03/29/WS_2D00_Compression-for-WCF.aspx'>http://weblogs.asp.net/cibrax/archive/2006/03/29/WS_2D00_Compression-for-WCF.aspx, 的作者们创建了一个新结合的元素'CompressionBindingElement',与其频道的相关课程。

这种压缩方案的作品完全在我WCF应用程序,并且尺寸的反应是减少几乎90%,太棒了!我首先测试它在http约束力(装置的定义结合使用http运输)和一切似乎良好。

一旦我想通过网。tcp结合(定义结合使用tcp运输),应用程序仍然运作良好。然而,当我检查了一些追踪工具,我发现了一些奇怪的。

我有没有一个单元的考试通过调用的10倍以上的方法,该方法创造了客户的由ChannelFactory,并明确地加入所有的约束力要素,其中包括压缩的结合的元素。当我首先检查的响应在TcpTrace,我惊讶地看到,所有这10个消息合并在一个单一的请求。

所以我试图SvcTraceViewer检查请求,并发现,该座连接断开直到服务被关闭。我看了内部处理的进展,并认为所有的消息,频道被关闭对于每个请求,但是连接只是不封闭的。

问题只是发生在净tcp结合的一个压缩的结合的元素,如果元素未加入约束力或在http结合一切似乎都很好。

有人试过这一解决办法,并看到相同的问题吗?还有什么我可以做到部队的连接近?可能我已经错过了什么吗?

多谢了, Tony

有帮助吗?

解决方案

它看起来像微软现在有一名官员的文章在压缩编码器:http://msdn.microsoft.com/en-us/library/ms751458(v=VS。90).aspx

我测试了它看起来像问题是没有了。它不是那么容易把我的单元测试运行之后,许多日)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top