2013-03-15 83 views
1

我们在这里有一个奇怪的问题。 我们有一个代码在客户端使用HTTPWebResponse/HttpWebRequest从网络服务器下载一些文件我们使用HttpWebResponse.ContentLength来获得文件的大小... 所有这些日子它工作正常,但突然它开始给 - 1 然而,当我们绕过它工作在服务器上的负载均衡.. 谁能请提供关于为什么这可能发生为什么HttpWebResponse.ContentLength突然返回-1?

回答

2

HttpWebResponse.ContentLength刚刚报告的是服务器在Content-Length头发送一个公平的想法。或者,如果服务器没有发送任何内容,它可能会报告-1。

无论问题出在哪里,它都是在服务器上,而不是在HttpWebResponse上。

既然您说如果禁用负载均衡器,问题就会消失,那么我会怀疑负载均衡器激活的服务器中至少有一个未设置标题。

+0

谢谢吉姆!我用这个内容长度来获取文件的大小来相应地更新进度条..但是文件被下载..所以我得到了服务器的响应.. – SSK 2013-03-15 13:29:06

+0

是的,服务器发送响应,但不是设置“Content-Length”标题。 – 2013-03-15 13:31:11

+0

是否有需要查看IIS修复此问题? – SSK 2013-03-15 13:31:49

2

从MSDN的文档上HttpWebResponse.ContentLength property

如果的ContentLength头没有在响应中设置,的ContentLength被设置为值-1。

简而言之 - 服务器不发送Content-Length标头。

+0

嗨甜甜圈..但服务器发送响应...在我的情况下,我能够从服务器下载文件..但只有内容长度属性返回-1 – SSK 2013-03-15 13:36:19

+0

@Sathish我明白,身体的响应正在发送,但Content-Length标题不同(这是服务器没有发送的内容)。 – Donut 2013-03-15 13:42:24

+0

那么我应该如何解决这个问题..有什么我需要检查服务器端或IIS设置 – SSK 2013-03-15 13:50:07