是否有内置方法来确定WCF响应的大小?

时间:2010-04-29 02:52:17

标签: wcf preload

在客户端获取Web请求的完整有效负载之前,我们首先要向其发送一个度量大小的测量值。如果响应太大,客户端将向用户显示一条消息,为他们提供中止操作的选项。

我们可以编写一些自定义代码来预先加载服务器上的响应,确定大小,然后将其传递给客户端,但是如果还有其他方法可以做到,我们不愿意。

有没有人知道WCF是否有任何棘手的方法来做到这一点?或者是否有任何免费的第三方工具可以实现这一目标?

感谢。

1 个答案:

答案 0 :(得分:0)

我不认为在WCF或.NET框架中有任何“棘手”的做法,真的。你又回到了客户那里?一个类的实例?

您可以做的是运行查询,或者您获取响应,然后将其序列化为内存流并查看它有多大。这将不是一个完全准确的大小 - SOAP消息有一些开销,如SOAP信封和标题和东西 - 但它可以给你一个大概的数字,你是否要返回几百个字节,或者几兆字节。

麻烦的是:服务器上可能需要一段时间才能组装/查询,然后实际“测量”。另外,您几乎必须要有两个调用 - 一个调用“MeasureResult”,返回一个Int或Long或者其他东西,然后再调用“GetResult”来实际获得结果。因此,您需要花费两倍的时间来组合消息....

我真的没有给你一个好的答案,但也许你只需要找出一些其他的方法来允许客户端中止呼叫,如果它需要太长时间。或者找到一种方法来更快地找出一个关于响应有多大的指标(没有得到响应本身的所有细节)。

相关问题